autosshは常にエラーで終了します。

autosshは常にエラーで終了します。

便宜のためにエイリアスを使用しましたが、うまく機能しましたsshautossh -M0

しかし、常にエラーで終了し、スクリプトに問題が発生します。

例えば

ssh me@myserver 'true'      # equivalent to:  autossh -M0 me@myserver 'true'
echo $?     # 1

どうすれば解決できますか?

(スクリプトの回避策は/usr/bin/ssh代わりにこれを使用してくださいssh。しかし、可能であればこの問題を修正したいと思います。)

ベストアンサー1

マニュアルページから:

「スタートゲート」の時間があります。最初のsshプロセスが開始後最初の数秒以内に失敗した場合、autosshは「開始ステートメントから出た」ことがないと仮定して終了します。初期認証失敗、接続などを処理するためのものです。この時間のデフォルト値は30秒​​で調整できます(下記のAUTOSS_GATETIME環境変数を参照)。

したがって、AUTOSH_GATETIME を 0 に設定すると問題が解決します。

AUTOSSH_GATETIME=0 ssh me@myserver 'true'
echo $?     # 0

パスワードやパスフレーズを入力しない場合は、タグ-fautossh別名に追加できます)を使用することもできます。

ssh -f me@myserver 'true'
echo $?     # 0

おすすめ記事