Ssh

如何將公鑰附加到遠端主機而不是複制它

  • November 4, 2020

我在我的 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"

或者如果你喜歡sshcat >> file

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

兩者teecat都將從標準輸入中讀取,標準輸入將發送到sshwith < file

不同之處在於tee,不像>>將列印它附加的內容。

注意:雙引號是必需的,否則>>or~將在發送到ssh命令之前由您的 shell 解釋。

您還可以使用ssh-copy-id,它是一種工具,可以完全按照您的意願行事:將一個或多個密鑰添加到遠端系統的 authorized_keys 中。

引用自:https://unix.stackexchange.com/questions/617811