Networking
如何使用自動密碼和無密鑰 ssh 到遠端伺服器?
我有一個遠端伺服器。我計劃使用公鑰通過 ssh 連接而不輸入密碼,但遠端系統拒絕公鑰身份驗證。
那麼最好的方法是什麼?怎麼用
sshpass
?
sshpass
如果您是系統的唯一使用者,則可以使用。但這絕對是一個非常糟糕的主意。如果每個人都可以通過 shell 訪問您的機器,那麼每個人都可以獲得您的 passord。一旦你不能交換公鑰。我建議你使用
expect
. 您需要保護exp
包含密碼的文件。它將儲存在您的硬碟上,因此每個具有 sudo 或 root 訪問權限的使用者都可以破解它。但至少它確實比sshpass
.
編輯
從我用作參考的連結中,您可以找到更多選項。
如果您已經
sshpass
安裝,您可以自動化 ssh 連接,這樣您就不需要為每台機器輸入密碼:SSHPASS='password' sshpass -e your commands here
1.安裝
sshpass
這是一個漂亮的小程序,允許您將
ssh
密碼作為命令行參數傳遞。顯然,這不是一個非常安全的解決方案,我強烈建議您閱讀man sshpass
.無論如何,它可能在您的發行版的儲存庫中可用,在基於 Debian 的系統上可以安裝它
sudo apt-get install sshpass
我無法檢查,因為我沒有基於 RedHat 的機器,但據我在這裡搜尋可知,它應該可以安裝在 Fedora 上
sudo yum install sshpass
安裝後,您可以簡單地執行
SSHPASS='password' sshpass -e your commands
該
-e
選項告訴sshpass
從SSHPASS
變數中獲取密碼。這比通過-p
選項將其作為參數提供更安全一些。重要的:
如果您連接的伺服器未知,如果它的公鑰未儲存在您的機器中,這將靜默失敗。如果這似乎不起作用,只需連接一次(
ssh
或scp
)到遠端機器並接受其公鑰。參考