web-dev-qa-db-ja.com

コンソールへのsshpass出力を有効にする方法

Scpを使用してインタラクティブにパスワードを入力すると、ファイルコピーの進行状況がコンソールに送信されますが、スクリプトで sshpass を使用してファイルをscpする場合、コンソール出力はありません。

$ sshpass -p [password] scp [file] root@[ip]:/[dir]

Sshpassがscpのコンソール出力を抑制または非表示にしているようです。コンソールへのsshpass scp出力を有効にする方法はありますか?

15
jacknad

Sudo apt-get install expect

ファイル send-files.expは必要に応じて機能します。

#!/usr/bin/expect -f

spawn scp -r $FILES $DEST
match_max 100000
expect "*?assword:*"
send -- "12345\r"
expect eof

この方法では:

output = $(sshpass -p $ PASSWD scp -v $ filename [email protected]:/ root 2>&1)

エコー "出力= $出力"

コンソール出力を変数出力にリダイレクトします。

または、scpコマンドのコンソール出力のみを表示したい場合は、ssh passコマンドに-vコマンドのみを追加する必要があります。

sshpass -p $ PASSWD scp -v $ filename [email protected]:/ root

1
Fabio_MO

まさに何が望まれていたかではありませんが、沈黙よりは良いです:

SSHPASS="12345" sshpass -e  scp -v -r $FILES $DEST 2>&1 | grep -v debug1

-e-pよりも少し安全であると見なされていることに注意してください。