Loading

linux 远程ssh免密登录

写在前面

先说说需求:

我们平时开发、运维操作linux过程中经常需要实现将远程文件拷贝到本地或者本地文件拷贝到远程;执行远程命令等操作;这个时候建立ssh免密登录应该是一个比较好的选择;

原理

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的非对称加密算法;非对称加密算法会分别产生公钥和私钥;

现在有两台机器:ServerA和ServerB,ServerA需要免密登录ServerB,我们先在ServerA生成公钥和私钥,把公钥拷贝到ServerB指定的文件下,ServerA就可以免密登录ServerB了;

以下方法一和方法二都是使用依据上面的原理实现;

方法一:使用ssh-copy-id 命令拷贝密钥:

1、ServerA执行ssh-keygen生成公私钥;

ssh-keygen

公私钥 默认生成路径/root/.ssh(这里的root是用户名,如果你是其他用户替换即可)

如图:这里会让你输入密钥的保护密码,我这里是一路回车(也就是不设置密钥密码)

1547276774262

生成的/root/.ssh的文件:

1547276894955

2、使用ssh-copy-id将公钥复制到ServerB中(windos不支持)

ssh-copy-id -i id_rsa.pub文件 ServerB用户名@ServerB_Ip
#示例
ssh-copy-id -i /root/.ssh/id_rsa.pub root@139.199.196.67

这个过程需要输入ServerB对应用户密码。下图添加成功。

1547277535362

ok,搞定。

3、测试

ServerA执行:

ssh root@ServerB_Ip date
#示例
ssh root@139.199.196.67 date

得到:
Sat Jan 12 15:22:17 CST 2019

成功!

方法二:手工拷贝密钥(Windows适用)

其实手工拷贝跟方法一的使用命令拷贝差不多,就是操作上原始一点;

1、生成公私钥:同方法一的步骤1;

2、手动将步骤1中ServerA生成的/root/.ssh/id_rsa.pub 拷贝到ServerB的/root/.ssh目录下并重命名authorized_keys

3、测试:同方法一的步骤3;

多个机器都想免密登录的话,直接把.pub文件追加在authorized_keys文件末尾就行

示例:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQClwibMj/HJmjcuLYu1v2QXQQ4xXl7KGIuZrAj616ZTa3ju8A+/zY7PzukbWbByvgkh+900IyrxjZIx5E0WdEUe0GmItOMTBWj815hqqH41ZC1BCBZoXbxz4M3DOfoGkgIj8EoB+8+tyNTlSj/lwRm7Zgu9BG/NkckawbnGSVc4PNNyl3YT8DbDp9iOA2hqC3RwHpl4py4N2yLaS1py4HaeLLfCyV5i8mFkRdr4UF9O1QEqKsEAuu/3aQVGuRijAw6hHr/5gMdVD0oJcni0R34DYe/Dymw1Doqp6gDT1KubTth8f1frS7L/RGXZ3NAeVhHtIYRLLOB0MBRlqCv3uCSI5IAir/kjsja35tzep7m4GjuWHF761XTxMFYmCPUaXHDNkiGgaclI5WQzyTuD3iMp3qupttFGWyYlp1tWdutjrj+oceesFlYb4pMVaKd24xfVq3pUhZk=
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzWNccmjdazKgVGJI/MpDfWbubb11m4RukgWZpNCq1RZponBzwQ2Ln5S7PqPM4AYI1P1wZB/WcOffevt40kfH+N3QqmjNxEvORpoDt+RD57yRkmEYOnijdGU4L2LD8ZaLfRjDIlvdIyVQ1udhcFgkn6XDlEv2qskuKs5Sm1RZh8IsxOoPV6n3Idf33BxfL9jtQMLkiicaSyayBuDhuf7AZ5bWqcj3yl8OhS1S8eWtU5fdfHQRoYoJXHyp7CjPUoJwiijuvu1UY3aywHOCuFPSUjOZh2ZvCxDFpDbJb9aDctDGqQijghYa7qHB0hl/igain5OeMh4bMKif3xBRURg6cV2Zi0T7odyKzmwQnMSIDljVpJz/WyubHoA2gI61yiFJlLeKREt59xigy0Fv52RasXMh27YbSGWFUK4tJXqdfOxlJ8UbGfey5l9vR6D/B8= heng\heng@HENG
posted @ 2019-01-13 21:07  乔达摩(嘿~)  阅读(964)  评论(0编辑  收藏  举报