举例:有机器PC_A(172.0.246),PC_B(172.0.1.140)。现想A通过ssh免密码登录到B。
1.在PC_A主机下生成公钥/私钥对
[comodo@PC_A ~]$ ssh-keygen -t rsa -P '' -t表示key的类型,rsa表示key类型 -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。运行完之后在/home/comodo/.ssh目录下生成私钥id_rsa和公钥id_rsa.pub
2.将PC_A主机下的公钥id_rsa.pub复制到PC_B机下
[comodo@PC_A ~]$ scp id_rsa.pub root@172.0.1.140:/home/comodo/id_rsa.pub
3.将PC_B主机上的公钥添加到/home/comodo/.ssh/authorzied_keys之中
[comodo@PC_B ~]$ cat id_rsa.pub >>/home/comodo/.ssh/authorized_keys [comodo@PC_B ~]$ chmod 600 /home/comodo/.ssh/authorized_keys
4.从PC_A机登录PC_B机
[comodo@PC_A ~]$ ssh 172.0.1.140 Last login: Fri Oct 12 10:37:30 2012 from 172-0-1-246.lightspeed.brhmal.sbcglobal.net
如果也希望从PC_B主机无密码登录PC_A主机,只需对PC_B主机做相同的操作。
注:
1:ssh-keygen 会生成 两个文件 id_rsa.pub和id_rsa
2:authorized_keys文件用来存外来机器的公钥(如果没有可以手动创建)
3:当使用ssh免密码登录时会自动生成一个known_hosts文件,如登录出现问题时需要删除此文件
4:如果.ssh文件夹是手动创建 chmod 0700 .ssh
补:以下方法
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys