You have no controlling tty and no DISPLAY. Cannot read passphrase.
warning: Authentication failed.
Disconnected (local); authentication cancelled by user (Authentication cancelled by user.).
Disconnect reason 13, exit code = 77
scp: warning: ssh2 client failed to authenticate. (or you have too old ssh2 installed, check with ssh2 -V)
スクリプトを実行すると、このエラーが発生します。 SSHは、サーバー間で2つの方法で動作します。
答え1
問題は、ユーザー入力を必要とするいくつかの認証方法(あなたの場合は秘密鍵を復号するためのパスワードまたはパスワードステートメント)を使用していますが、プログラムが開始されていないためユーザー入力を受け取ることができないことです。グラフィカルセッション(ssh
パスワードを求めるウィンドウフォームが生成されないようにする)または端末(対話的にssh
パスワードを要求できない)で。
ssh
これはセッションオープンをテストするときに機能します。これはssh
端末から始まるので、パスワードの取得に問題がないからです。
ttyを制御せずに(たとえば、cronジョブとして)スクリプトが実行されている場合は、非対話型認証が必要です。たとえば、パスワードのない秘密鍵です。もちろんこれはやや安全ではないので、秘密鍵を知っている攻撃者がサーバーから完全な機能を持つシェルを取得するのを防ぐために、スクリプトがsshを介して実行できるコマンドセットを制限することができます。