究竟是什么ssh-copy-id呢?

时间:2014-03-27 22:45:51

标签: ssh ssh-keys

ssh-copy-id命令到底是做什么的?我已经多次使用它并且效果很好。但是,当我尝试手动剪切并粘贴我的.pub密钥文件到我的远程authorized_keys时,它不起作用。

我已经比较了我的authorized_keys文件的内容,我将.pub剪切并粘贴到其中,后来使用了ssh-copy-id,我没看到两者之间有任何差异,包括空格。

除了将公钥复制到authorized_keys之外,还有什么ssh-copy-id吗?

2 个答案:

答案 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安全上下文。我没有必要这样做,但在你的情况下可能是必要的。