问题描述
通过密钥对,可以实现 SSH 免密登录。
但是,在设置 SSH 密钥登录时,需要分发公钥。
该笔记将记录:公钥分发的几种方法,以及常见问题处理。
解决方案
方法一、手动分发(不推荐)
将 id_ras.pub 文件追加到远程服务器 ~/.ssh/authorized_keys 文件中(或者,写入 authorized_keys2 文件)。
虽然不推荐,但是手动添加注释(使用 # 符号):
# This key is for xxxx. ssh-dss AAAAB3NzaC1kc3MAAACBAN+NX/rmUk... # This Key is for zzzz. ssh-dss AAAAB3NkabJ63dV0P5lDabJ8BwuCND...
方法二、ssh-copy-id(推荐)
使用命令 ssh-copy-id(1) 是推荐做法:
ssh-copy-id "user@hostname" ssh-copy-id -i "/path/to/id_*.pub" "user@hostname"
常见问题处理
如何向其他用户分发公钥?
问题描述:我们拥有ROOT帐号的登录权限,但是我们需要向WWW用户分发公钥,并且我们没有WWW用户的密码。
解决办法:
cat ~/.ssh/id_ras.pub \ | ssh "root@hostname" "sudo -u www tee -a /home/www/authorized_keys"
参考文献
ssh-copy-id key to other user than yourself?
authorized_keys
Add comment to existing SSH public key - Server Fault