Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


如何实现 ssh 无密码登录

2015-5-14 11:32    评论: 4 收藏: 6    

假设你是hostA上的一个用户"aliceA",想以用户“aliceB”的身份ssh到hostB上,但又不想输入密码。那么,你可以参考这篇教程实现ssh无密码登录。

首先,你需要以用户“aliceA”的身份登录到hostA上。

然后,使用ssh-keygen生成一对rsa公私钥,生成的密钥对会存放在~/.ssh目录下。

$ ssh-keygen -t rsa

接下来,使用下面的命令在目标主机hostB上的aliceB用户目录下创建~/.ssh目录。如果在aliceB@hostB上已经存在.ssh目录,这一步会被略过。

$ ssh aliceB@hostB mkdir -p .ssh

最后,将hostA上用户“aliceA”的公钥拷贝到aliceB@hostB上,来实现无密码ssh。

$ cat .ssh/id_rsa.pub | ssh aliceB@hostB 'cat >> .ssh/authorized_keys'

自此以后,从aliceA@hostA上ssh到aliceB@hostB上再也不需要输入密码。(LCTT 译注:上述的创建目录并复制的操作也可以通过一个 ssh-copy-id 命令一步完成:ssh-copy-id -i ~/.ssh/id_rsa.pub aliceB@hostB

疑难解答

  1. 即使在密钥认证生效后,你可能仍然需要输入SSH密码。如果遇到这种情况,请检查系统日志(如/var/log/secure)以查看是否出现下面的异常。

    Authentication refused: bad ownership or modes for file /home/aliceB/.ssh/authorized_keys

    在这种情况下,密钥认证的失败是由于~/.ssh/authorized_keys文件的权限或拥有者不正确。一般情况,如果这个文件对除了你之外的所有用户都可读,就会出现这个错误。用下面的方式改变文件的权限以修正错误。

    $ chmod 700 ~/.ssh/authorized_keys 
    

via: http://xmodulo.com/how-to-enable-ssh-login-without.html

作者:Dan Nanni 译者:KayGuoWhu 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

发表评论


最新评论

我也要发表评论

丶Nature 2015-5-15 11:14
1
老沙 发表于 2015-5-14 12:17 的评论:
挺有用的小技巧。不过如果密钥文件被盗……
2
丶Nature 发表于 2015-5-14 16:57 的评论:
需要盗用的前提是破解当前主机的权限,如果能破解当前的机器root还需要盗用密钥来破解密码?
3
老沙 发表于 2015-5-15 05:08 的评论:
就怕权限不是破解的……
还是那句话,能接触这台主机 就等于不需要密码了
5 回复
老沙 2015-5-15 05:08
1
老沙 发表于 2015-5-14 12:17 的评论:
挺有用的小技巧。不过如果密钥文件被盗……
2
丶Nature 发表于 2015-5-14 16:57 的评论:
需要盗用的前提是破解当前主机的权限,如果能破解当前的机器root还需要盗用密钥来破解密码?
就怕权限不是破解的……
4 回复
丶Nature 2015-5-14 16:57
1
老沙 发表于 2015-5-14 12:17 的评论:
挺有用的小技巧。不过如果密钥文件被盗……
需要盗用的前提是破解当前主机的权限,如果能破解当前的机器root还需要盗用密钥来破解密码?
5 回复
老沙 2015-5-14 12:17
挺有用的小技巧。不过如果密钥文件被盗……
回复

热点评论

丶Nature 2015-5-15 11:14
还是那句话,能接触这台主机 就等于不需要密码了
5
丶Nature 2015-5-14 16:57
需要盗用的前提是破解当前主机的权限,如果能破解当前的机器root还需要盗用密钥来破解密码?
5
老沙 2015-5-15 05:08
就怕权限不是破解的……
4
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。