Ssh
如何將公鑰附加到遠端主機而不是複制它
我在我的 bash 腳本中使用了以下 cli ,以便將公鑰發送到遠端機器
sshpass -p $pass scp /root/.ssh/authorized_keys root@$remote_host:~/.ssh/authorized_keys
但是由於我們想附加來自其他主機的公鑰,所以我正在搜尋方法頂部附加
在 bash 中,我知道選項是使用“>>”,但是如何在我的方法中使用附加?
或者其他解決方案?
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
,不像>>
將列印它附加的內容。注意:雙引號是必需的,否則
>>
or~
將在發送到ssh
命令之前由您的 shell 解釋。
您還可以使用
ssh-copy-id
,它是一種工具,可以完全按照您的意願行事:將一個或多個密鑰添加到遠端系統的 authorized_keys 中。