共计 1354 个字符,预计需要花费 4 分钟才能阅读完成。
假设你是 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
提高 Ubuntu 的 SSH 登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm
开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm
如何为 Linux 系统中的 SSH 添加双重认证 http://www.linuxidc.com/Linux/2014-08/105998.htm
在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm
Linux 上 SSH 服务的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm
SSH 入门学习基础教程 http://www.linuxidc.com/Linux/2014-06/103008.htm
SSH 免密码登录详解 http://www.linuxidc.com/Linux/2015-03/114709.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-05/117505.htm