認証に失敗しました

認証に失敗しました
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はサーバー間で双方向に動作しています

答え1

問題は、ユーザー入力 (あなたの場合は、明らかに、秘密鍵を復号化するためのパスフレーズ、またはパスワード) を必要とする何らかの認証方法を使用しているが、プログラムがグラフィカル セッション (パスフレーズを要求するsshウィンドウ フォームを生成できない) でもターミナル (したがって、ssh対話的にパスフレーズを要求することができない) でも起動されていないため、ユーザー入力を受信できないことです。

sshこの場合はターミナルで起動しているのでssh、パスフレーズを取得する際に問題がないため、セッションの開始をテストするときに機能します。

スクリプトが制御 tty なしで実行される場合 (たとえば、cron ジョブとして)、必要なのは非対話型認証です。たとえば、パスフレーズのない秘密キーです。もちろん、これは多少安全ではないので、攻撃者が秘密キーを知ってサーバー上でフル機能のシェルを取得するのを防ぐために、ssh 経由でスクリプトによって実行可能なコマンドのセットを制限する必要があります。

関連情報