我正在編寫一個使用rsync的腳本,並且我希望它在SSH密鑰有密碼時錯誤輸出,告訴用戶使用非密碼保護密鑰(而不是因爲腳本在後臺運行)。錯誤輸出而不是使用SSH請求密碼短語
但是,我嘗試過的SSH都沒有這樣做,並且我在man頁面中找不到任何東西。
禁用SSH密碼提示的最佳方法是什麼?
我正在編寫一個使用rsync的腳本,並且我希望它在SSH密鑰有密碼時錯誤輸出,告訴用戶使用非密碼保護密鑰(而不是因爲腳本在後臺運行)。錯誤輸出而不是使用SSH請求密碼短語
但是,我嘗試過的SSH都沒有這樣做,並且我在man頁面中找不到任何東西。
禁用SSH密碼提示的最佳方法是什麼?
您可以使用BatchMode
選項執行此操作。這將導致SSH避免可能導致腳本掛起的任何事情,例如密碼/密碼提示。
這個例子是從一個類似的問題在http://www.unix.com/programming/184775-test-ssh-but-do-not-return-password-prompt.html
if ssh -o BatchMode=yes "$hostname" true 2>/dev/null; then
echo "it works"
else
echo "it's broken."
if
問直接取自這裏的rsync的一個例子:
rsync -e "ssh -o BatchMode=yes -i /var/www/.ssh/id_rsa" /path/to/test/file.txt remotehost:/path/to/test/file.txt
我已經使用rsync和'-e'標誌來指定SSH命令,所以我可以將BatchMode標誌添加到該標誌中。謝謝! –
是,禁用密碼認證,公鑰認證 –
顯然不是密碼短語,對不起沒有仔細閱讀。由於用戶會執行腳本,我是否正確地假設腳本能夠訪問用戶的私鑰(或者您是否認爲可以在腳本中執行此操作)? – devnull