如何使用单个命令将本地机器上的id_rsa.pub密钥附加到远程服务器的authorized_keys文件中?
ssh-copy-id user@remote_server
可以使用以下方式将授权密钥添加到一行中(使用双引号以便在发送之前进行解释):
ssh user@server "echo \"`cat ~/.ssh/id_rsa.pub`\" >> .ssh/authorized_keys"
这就是窍门:
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。 - Sameertype %userprofile%\.ssh\id_rsa.pub | ssh user@linux.local "cat >> .ssh/authorized_keys"
。 - Adarshassh-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