Ssh

管道中的命令如何從鍵盤讀取?

  • April 13, 2016

我隨機嘗試在 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程序進行互動。

引用自:https://unix.stackexchange.com/questions/276129