我在 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
将从标准输入读取,该标准输入被发送到ssh
with < file
。
不同之处在于,tee
, 不像>>
会打印它附加的内容。
注意:需要使用双引号,否则您的 shell 将在将其发送到命令之前>>
对其~
进行解释。ssh