IT Notes‎ > ‎Operation System‎ > ‎Linux‎ > ‎

SSH 免密码登录设置

假设有 A, B 两机,都是 Linux 系统,实际上我用的是 Ubuntu, A 能通过 ssh 登录 B:
ssh zhangsan@hostB
再输入密码,即可登录 B.

可以考虑将 A 系统的用户 zhangsan 的 ssh pub key 加入到 B 的接受列表中,实现免密码登录。具体步骤如下:

1. 在 A 和 B 中都安装好 ssh 相关软件
$ sudo apt-get update
$ sudo apt-get install ssh
$ sudo apt-get install rsync

2. 生成密钥
在 A 系统,以用户 zhangsan 登入,并执行
$ ssh-keygen -t rsa
此命令以交互模式执行,会询问生成的密钥文件的名称(默认是 id_rsa),为了不覆盖以前生成的,可以另外指定密钥文件的名称。
此命令执行后,会在 ~/.ssh/ 中生成一对密钥:id_rsa 和 id_rsa.pub,前者是私钥,后者是公钥。

公钥的文本内容类似这样的:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWXgsi3/v67ZI+0j4cEAWJXezgaQNmf3xWRekFTfzanXdVM6MlhlRn9k+BkfkaRwUuxtD9O/+W/BqD3Nqer+Fijyu1fqPd1g+WgZhYYEhDml6KXT6youBIRF0X/t9qkpkHuU7WpWdBR5/h15UojujeRzTF8U4hC6Y1xRH1ferNSaXc95Wv50ZLbSDFhKhyWGz1/R7l+/JVi8JZggJK0hzauRU4f7x8lq0jED5782i/vsr9Df4EpxQIQ++oJi79uHGt3nQpLmgF8mMbCqlmh3PWVbw8r1IsuSDacxCz1bukJ+q/XjMG05m58rtKaOWRLFatsrqNF03OR59gE9Dv3bKh hadoop@cydebian7

3. 添加认证
将 A 的 ssh pub key 即 id_rsa.pub 的内容,附加到 B 的 /home/hadoop/.ssh/authorized_keys 中。

至此,A 通过 ssh 登录 B 时,就无需密码了。




Comments