如何实现 ssh 无密码登录-mile米乐体育
linux
2020年03月29日 23:43
1
假设你是hosta上的一个用户”alicea”,想以用户“aliceb”的身份ssh到hostb上,但又不想输入密码。那么,你可以参考这篇教程实现ssd无密码登录。
首先,你需要以用户“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)
疑难解答
- 即使在密钥认证生效后,你可能仍然需要输入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
展开全文