Linux SSH免密登录

SSH无密码登录要使用公钥与私钥。Linux可以用ssh-keygen生成公钥/私钥对,下面以Ubuntu为例说明配置过程。

有两个节点:node01(172.17.0.14)和node02(172.17.0.17),node01节点想通过ssh免密登录到node02节点。

 

1. 在node01节点生成公钥/私钥对

ubuntu@node01:~$ ssh-keygen -t rsa -P ''

-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。完成后会在/home/ubuntu下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。

2. 把node01的id_rsa.pub复制到node02,并追加到node02的.ssh/authorized_keys文件。(若node02没有.ssh和authorized_keys文件则创建该文件夹和文件)

ubuntu@node01:~$ scp .ssh/id_rsa.pub ubuntu@node02:/home/ubuntu

3. 在node02节点把从node01复制的id_rsa.pub追加到.ssh/authorzied_keys文件

ubuntu@node02:~$ cat id_rsa.pub >> .ssh/authorized_keys

4. node01登录node02

ubuntu@node01:~$ ssh 172.17.0.17

至此,node01就可以免密登录node02了。

登录机器拥有私钥,被登录机器需要拥有登录机器的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)。想让node01和node02相互免密登录,那node02用上述方式同样配置即可。

当然,IP相对于主机名要难记的多,我们也可以直接以 ssh hostname 方式来进行远程登录,在 /etc/hosts 文件中添加以下配置:

172.17.0.14 node01
172.17.0.17 node02

配置完成后就可以直接以主机名登录了

ubuntu@node01:~$ ssh node02

 

posted @ 2019-04-08 18:28  写出高级BUG  阅读(1000)  评论(0编辑  收藏  举报