Ssh
管道中的命令如何從鍵盤讀取?
我隨機嘗試在 bash 1中執行以下命令
cat /some/file | ssh user@machine 'cat >/destination/file
遠端機器上沒有安裝密鑰,因此唯一的身份驗證方法是使用密碼機制。我認為這行不通,因為管道會斷開 SSH 的標準輸入與終端的連接。當我被提示輸入密碼並成功發送文件時,我感到很驚訝。
關於 SSH 如何讀取鍵盤以提示輸入密碼的任何想法,儘管沒有連接到它?
1我知道在兩台機器之間複製文件有更好的選擇。
(打開)ssh 直接從 tty 讀取。看:
cat /some/file | ssh user@machine 'cat >/destination/file
這不起作用,因為在顯示提示和讀取密碼(安全)之前會
ssh
截斷它。stdin
可能的解決方法是使用expect
腳本,該腳本將與正在執行的ssh
程序進行互動。