ssh本地无密码登录
今天在配置ssh本地无密码登录时发现,在ubuntu 14.04上配置成功了,可是在ubuntu 16.04上配置始终需要输入登录密码。由于是在学习hadoop时接触到的,而hadoop上提供的ssh免密码登录的命令如下:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
上述命令在ubuntu 14.04上执行完后,通过ssh localhost
可以实现无密码登录。可是在ubuntu 16.04上却始终不行,在查看了网上的一些介绍说是权限问题,尝试了各种权限修改,依然不能解决问题,最后通过指定rsa类型的key连接成功。命令如下:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
备注:若出现sign_and_send_pubkey: signing failed: agent refused operation
错误,可执行$ ssh-add
命令。(2016/10/12)
ssh远程无密码登录
假设有两台主机 A 和 B ,要实现主机 A 无密码访问主机 B 配置步骤如下:
- 在主机 A 上通过命令
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
创建公私钥对。 - 拷贝
id_rsa.pub
文件内容到主机 B 的~/.ssh/authorized_keys
文件中。
配置完成后,主机 A 就可以不用输入密码登录主机 B 了。如果要同时实现主机 B 也能无密码登录主机 A ,则需要在主机 B 上也创建公私钥对并将公钥内容复制到主机 A 的~/.ssh/authorized_keys
文件中。
备注
- 尚不明白为何ubuntu 16.04上当ssh key类型为dsa时不能实现免输入密码登录。