SSH認證免密碼登入

傻呆發表於2015-11-27
SSH無密碼登入要使用公鑰與私鑰。Linux下可以用用ssh-keygen生成公鑰/私鑰對。
舉例:有機器PC_A(172.0.246),PC_B(172.0.1.140)。現想A通過ssh免密碼登入到B。
1.在PC_A主機下生成公鑰/私鑰對

  1. [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機下

  1. [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之中

  1. [comodo@PC_B ~]$ cat id_rsa.pub >>/home/comodo/.ssh/authorized_keys
  2. [comodo@PC_B ~]$ chmod 600 /home/comodo/.ssh/authorized_keys 
4.從PC_A機登入PC_B機

  1. [comodo@PC_A ~]$ ssh 172.0.1.140
  2. Last login: Fri Oct 12 10:37:30 2012 from 172-0-1-246.lightspeed.brhmal.sbcglobal.net
如果也希望從PC_B主機無密碼登入PC_A主機,只需對PC_B主機做相同的操作。


現在的 ssh 使用同樣的方法會出現錯誤訊息
Agent admitted failure to sign using the key


解決方式 使用 ssh-add 指令將私鑰 加進來 (根據個人的密匙命名不同更改 id_rsa)
# ssh-add   ~/.ssh/id_rsa 


再通過ssh 主機名 就可以實現無密碼登入了。

還有就是 authorized_keys 的許可權也會導致無法無密碼ssh登陸   我修改為 600 成功

相關文章