最近在ubuntu上安裝hadoop,需要配置ssh免密登錄localhost,多次嘗試之後任然需要輸入密碼才能訪問,主要原因是配置完成後未將私鑰添加到由ssh-agent 維護的列表中,使用ssh-add命令即可,百度到的ssh-agent和ssh-add命令的作用如下:
ssh-agent 是用於管理SSH private keys的, 長時間持續運行的守護進程(daemon). 唯一目的就是對解密的私鑰進行高速緩存。
ssh-add 提示並將用戶的使用的私鑰添加到由ssh-agent 維護的列表中. 此後, 當使用公鑰連接到遠程 SSH 或 SCP 主機時,不再提示相關信息.
整個配置過程如下:
===================================================================================
1.運行ssh localhost 查看是否需要密碼就能登錄,如果必須輸入密碼才能登錄的話,運行以下命令:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
2.在此運行ssh localhost,顯示如下:
3.輸入yes,出現錯誤: sign_and_send_pubkey: signing failed: agent refused operation
這表示ssh-agent 已經在運行了,但是找不到附加的任何keys,就是說你生成的key,沒有附加到ssh-agent上,需要附加一下,執行
$ ssh-add
出現提示:
Identity added: /home/qinyao/.ssh/id_rsa (/home/qinyao/.ssh/id_rsa)
證明已經附加成功!
4.再次嘗試ssh localhost,成功登錄