如何将公钥附加到远程主机而不是复制它

如何将公钥附加到远程主机而不是复制它

我在 bash 脚本中使用了以下 cli ,以便将公钥发送到远程计算机

sshpass -p $pass scp  /root/.ssh/authorized_keys root@$remote_host:~/.ssh/authorized_keys

但由于我们想附加来自其他主机的公钥,所以我正在搜索顶部附加方法

在 bash 中,我知道该选项是使用“>>”,但如何使用我的方法附加?

或者也许其他解决方案?

答案1

您还可以使用ssh-copy-id,这是一种可以完全执行您想要的操作的工具:将一个或多个密钥添加到远程系统的authorized_keys 中。

答案2

ssh与以下一起使用tee -a file

< /root/.ssh/authorized_keys sshpass -p "$pass" ssh root@"$remote_host" "tee -a ~/.ssh/authorized_keys"

或者ssh如果cat >> file您愿意的话:

< /root/.ssh/authorized_keys sshpass -p "$pass" ssh root@"$remote_host" "cat >> ~/.ssh/authorized_keys"

tee和都cat将从标准输入读取,该标准输入被发送到sshwith < file
不同之处在于,tee, 不像>>会打印它附加的内容。

注意:需要使用双引号,否则您的 shell 将在将其发送到命令之前>>对其~进行解释。ssh

相关内容