您是否確定server1上的腳本實際登錄到遠程服務器(並且不會立即註銷)?我能想到的唯一解釋是「ls」命令並不真正在遠程服務器上運行。如果你分享腳本和確切的命令,這可能有助於弄清楚。 (從整體交換「腳本」的輸出也可能會有所幫助。)
像下面的內容也可能會爲你工作:
ssh server1.example.com ssh remote-server.example.com ls
根據您的遠程命令,你也可以這樣做:
ssh server1.example.com "ssh remote-server.example.com ls"
(如果有後者可能是必要的,例如,重定向參與,否則會向當地的殼來解釋。)
由於你使用phpseclib,它可能會處理上面例子中的第一個ssh。所以,你可能或許使用類似:
$ssh->exec("ssh remote-server.example.com ls")
或者,如果您使用的公鑰驗證第二步,也許:
$ssh->exec("ssh -i ~/.ssh/keyfile remote-server.example.com ls")
有一個如何使用SSH在遠程運行命令的快速摘要https://www.ssh.com/ssh/command/
你猜對了,我從來沒有登錄到遠程服務器 - 密鑰密碼短語問題。 :( 謝謝 –