SSH本機免登陸密碼

今天在設置Linux免登錄的時候,按照Hadoop官方說明的ssh設置,然後通過ssh localhost測試,可是總是提示要輸入密碼。

 

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

琢磨了一下SSH的原理

命令1:$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

這個命令會產生一個公鑰(~/.ssh/id_rsa.pub)和密鑰(~/.ssh/id_rsa),

  -t dsa:表示使用密鑰的加密類型,可以爲'rsa'和'dsa'

  -P '':表示不需要密碼登錄

  -f ~/.ssh/id_dsa:表示密鑰存放的路徑爲${USER}/.ssh/id_dsa

 

命令2:$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

將本機的公鑰添加進authorized_keys中,這樣允許本機通過ssh的形式免密碼登錄

注意使用>>,而不是>,因爲如果其它主機(如A)也採用免登陸的形式登錄,也可以把主機A的公鑰添加到authorized_keys文件中。這樣主機A就可以免登陸ssh到本機了。

 

開始也找不出什麼原因,後來用root用戶跟蹤/var/log/message日誌,發現每次ssh localhost的時候,有以下日誌出現

Aug 20 14:47:40 vm-360-149-11 sshd[11072]: Authentication refused: bad ownership or modes for file /home/linzm/.ssh/authorized_keys

 

於是更改authorized_keys的權限爲600 

chmod 600 authorized_keys

 

問題解決,配置成功。

 

ssh localhost再也不需要輸入密碼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章