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

Dan*_*del 16 ssh ssh-keys

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

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

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

gan*_*rty 10

这个小命令真的应该有效.我每次没有ssh-copy-id时都会使用它,例如当我在Mac上时.

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> ~/.ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)

IMO它比手动复制和粘贴更好:在这种情况下,您确切地知道哪些内容将最终出现在文件中


Jac*_*uls 7

我通常将密钥复制粘贴到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"
Run Code Online (Sandbox Code Playgroud)

最后一行中的restorecon恢复默认的SELinux安全上下文.我没有必要这样做,但在你的情况下可能是必要的.