【发布时间】:2014-06-28 18:08:51
【问题描述】:
如何在远程服务器上使用 id_rsa.pub 密钥通过单个命令从本地计算机上附加授权密钥?
【问题讨论】:
标签: ssh public-key authorized-keys
如何在远程服务器上使用 id_rsa.pub 密钥通过单个命令从本地计算机上附加授权密钥?
【问题讨论】:
标签: ssh public-key authorized-keys
ssh-copy-id user@remote_server
【讨论】:
可以这样添加授权密钥(使用双引号,以便在发送前对其进行解释):
ssh user@server "echo \"`cat ~/.ssh/id_rsa.pub`\" >> .ssh/authorized_keys"
【讨论】:
ssh-copy-id,但是如果您有一个新的公钥(例如一台新的笔记本电脑)要添加到您已经有权访问的一个或几个服务器上,那么这个命令非常有用。这允许您使用来自~/.ssh/ 的密钥/设置进行身份验证,但复制不同的密钥。太棒了!
这就是诀窍:
cat ~/.ssh/id_rsa.pub | (ssh user@host "cat >> ~/.ssh/authorized_keys")
将本地公钥附加到远程authorized_keys 文件。
【讨论】:
ssh user@host "cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub 有点短,不需要子shell。
type %userprofile%\.ssh\id_rsa.pub | ssh user@linux.local "cat >> .ssh/authorized_keys"
ssh-copy-id 程序是标准方式,但可以手动将密钥附加到 ~/.ssh/authorized_keys 文件中:
cat ~/.ssh/id_rsa.pub | ssh username@host "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
这不会检查密钥是否已经存在并且可能导致重复。
【讨论】:
最方便的选项是ssh-copy-id 命令。它可以将公钥附加到~/.ssh/authorized_keys。例如:
ssh-copy-id -f -i id_rsa.pub username@host
地点:
-f: 强制模式——复制密钥而不检查它们是否已经安装-i: [identity_file]
【讨论】:
你可以避免一些引用:
ssh user@host tee -a .ssh/authorized_keys < ~/.ssh/id_rsa.pub
【讨论】: