ssh-copy-id命令到底是做什么的?我已经多次使用它并且效果很好。但是,当我尝试手动剪切并粘贴我的.pub密钥文件到我的远程authorized_keys时,它不起作用。
我已经比较了我的authorized_keys文件的内容,我将.pub剪切并粘贴到其中,后来使用了ssh-copy-id,我没看到两者之间有任何差异,包括空格。
除了将公钥复制到authorized_keys之外,还有什么ssh-copy-id吗?
答案 0 :(得分:8)
这个小命令真的应该有效。我每次没有ssh-copy-id时都会使用它,例如当我在Mac上时。
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> ~/.ssh/authorized_keys'
IMO它比手动复制和粘贴更好:在这种情况下,您确切知道哪些内容最终会在文件中
答案 1 :(得分:6)
我通常将密钥复制粘贴到authorized_keys中(我忘了ssh-copy-id
),所以它可以正常工作。请注意,如果您要创建文件,则需要chmod 600 ~/.ssh/authorized_keys
。
ssh-copy-id
是一个shell脚本,因此您可以在文本编辑器中打开它以查看它的作用,这看起来像相关的一点:
printf '%s\n' "$NEW_IDS" | ssh "$@" "
umask 077 ;
mkdir -p .ssh && cat >> .ssh/authorized_keys || exit 1 ;
if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi"
最后一行中的restorecon恢复默认的SELinux安全上下文。我没有必要这样做,但在你的情况下可能是必要的。