コマンドは機能しますが、スクリプトから実行すると権限拒否エラーが発生します

コマンドは機能しますが、スクリプトから実行すると権限拒否エラーが発生します

以下のコマンドはローカルホストから正常に動作し、目的の出力が得られます。以下を参照してください。

$ ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit"
Output:
WORKS

test.shさて、私はこのコマンドを十分な実行権限を持つスクリプトファイルに入れました

$ cat test.sh
segment=$(ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit")
echo "SEGMENT $segment"

期待した出力が得られません。実際、以下のエラーが発生します。

$ ./test.sh
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SEGMENT

私は期待していました

SEGMENT WORKS

これで、アクセス許可が拒否されたというエラーは消えますが、

何が問題なのか教えていただけますか?

答え1

問題は、私が別名を使っていたことです

alias ssh=ssh -i /app/private_key

ユーザープロファイルに保存されます。ただし、この設定はシェルスクリプトでは有効になりません(ここ例えば、明示的に呼び出す必要がありました

ssh -i app/private_key

スクリプト内。これで問題は解決しました。

関連情報