我需要執行ssh從windows命令行通過以非交互方式提供密碼。我可以實現基於密鑰的認證和能夠執行就像通過Windows命令提示符通過密碼驗證執行ssh
ssh <user>@<host> <command>
的SSH命令有沒有像
ssh <user>@<host> -P <password> <command>
我不知道這是否是可行的任何命令。但是,也可以有相同的解決方法。拋出一些想法來實現這一點。
我需要執行ssh從windows命令行通過以非交互方式提供密碼。我可以實現基於密鑰的認證和能夠執行就像通過Windows命令提示符通過密碼驗證執行ssh
ssh <user>@<host> <command>
的SSH命令有沒有像
ssh <user>@<host> -P <password> <command>
我不知道這是否是可行的任何命令。但是,也可以有相同的解決方法。拋出一些想法來實現這一點。
PuTTY的plink有command-line argument for a password。在the answers to this question中提出了一些其他建議:使用Expect(可用於Windows)或使用Paramiko在Python中編寫啓動程序。
@Birla plink是一個特別的Windows程序,Pexpect和Paramiko都可以在Windows上使用。 –
sshpass實用程序就是爲了這個。首先,通過鍵入以下命令進行安裝sshpass:
sudo apt-get install sshpass
然後前面加上您的SSH/SCP命令
sshpass -p '<password>' <ssh/scp command>
這個程序是最容易使用Linux時安裝。
用戶應考慮使用SSH更安全的公鑰認證(使用ssh
命令)。
也適用於rsync – TheJosh
不完全確定一個linux實用程序(可以爲Cygwin製作,但是這是一個完全不同級別的系統管理)獲得64個最高票數......而Plink完全是這樣做的OP詢問並且不需要任何額外的工作(並且可能已經在他們的系統中首先安裝)得到1. 我傾向於相信Stack這些東西,所以如果有充分的理由跳過令人討厭,偶爾也會令人瘋狂......呃......我真的很好奇爲什麼它會得到這麼多的愛。 – OhkaBaka
因爲該標題不包括「窗口」,並且當它在Linux/Unix/Mac上搜索時顯示在列表中。所以,在這裏回答這個問題可以節省時間。 – Frobbit
這個expect腳本怎麼樣?
#!/usr/bin/expect -f
spawn ssh [email protected]
expect -exact "[email protected]'s password: "
send -- "mypassword\r"
interact
它說我沒有期望腳本 –
'expect'被低估了! –
使用基於密鑰的身份驗證是一個更好的主意。 –
是的,我也需要基於密碼的身份驗證。 – Balachandar
@GregInozemtsev雖然這種情況下,有時需要一個快速和骯髒的腳本來做這樣的事情,特別是在不需要純安全性的測試或其他環境中。 – TheJosh