如何使用 sshpass 在第二個 ssh 躍點上提供密碼

如何使用 sshpass 在第二個 ssh 躍點上提供密碼

注意:這可能看起來與這個問題。它是相關的但不相同(加上它在不同的 StackExchange 網站中)。在這個問題中,作者詢問了一種在遠端系統中執行命令的方法。在這個問題中,我問如何透過兩個 SSH 連線開啟(和維護)shell。

我必須通過一台中間機器(我們稱之為$gateway)才能到達我的$server.所以我典型的工作流程是:

ssh $gateway (supply password manually)
ssh $server (supply password manually)

我可以在到 的躍點上設定 SSH 公鑰身份驗證,$gateway但不能在到 的第二躍點上設定 SSH 公鑰身份驗證$server。所以我能做的最好的就是:

ssh $gateway (no password necessary)
ssh $server (supply password manually)

我的問題是:我可以使用sshpass或其他方法在第二跳上提供密碼嗎?我沒有在電腦sshpass上安裝或任何其他軟體的權限$gateway

答案1

您可以嘗試忽略手動密碼輸入 -

vipin@kali:~$ cat kk.sh
#!/usr/bin/expect 
    set password 1               #set password to 1 (hardcoded)
    spawn ssh kali@kali          # user and hostname is kali
    expect "password"
    send "$password\r"
    interact                     # to get the shell prompt
vipin@kali:~$ ./kk.sh            # execute it and you are in new server

答案2

使用ProxyCommand

sshpass -p server_password ssh -oProxyCommand="ssh -W %h:%p $gateway" $server

它將sshpass從您的本機主機運行。

相關內容