关于ssh:如何使用id_rsa.pub密钥在远程服务器上附加authorized_keys

How to append authorized_keys on the remote server with id_rsa.pub key

如何使用单个命令通过本地计算机上的id_rsa.pub密钥在远程服务器上附加authorized_keys?


ssh-copy-id user@remote_server

http://linux.die.net/man/1/ssh-copy-id


添加授权密钥的方式可以是单行的(使用双引号,以便在发送之前对其进行解释):

1
ssh user@server"echo "`cat ~/.ssh/id_rsa.pub`">> .ssh/authorized_keys"

这可以解决问题:

1
cat ~/.ssh/id_rsa.pub | (ssh user@host"cat >> ~/.ssh/authorized_keys")

将本地公共密钥附加到远程authorized_keys文件。


ssh-copy-id程序是标准方法,但是可以将密钥手动附加到~/.ssh/authorized_keys文件:

1
cat ~/.ssh/id_rsa.pub | ssh username@host"mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

这不检查密钥是否已经存在,并可能导致重复。


最方便的选项是ssh-copy-id命令。可以将公钥附加到~/.ssh/authorized_keys。例如:

1
ssh-copy-id -f -i id_rsa.pub username@host

位置:

  • -f:强制模式-复制密钥而不尝试检查它们是否已安装
  • -i[identity_file]

您可以通过以下方式避免引用:

1
ssh user@host tee -a .ssh/authorized_keys < ~/.ssh/id_rsa.pub