コマンドエラーのため、SSH クライアントは終了します。

コマンドエラーのため、SSH クライアントは終了します。

私はDebianまたはWindowsとPuttyを使用してSSH経由でリモートDebianシステムに接続しています。リモートシステム(Debian)は、私が知っている他のSSHサーバーとは異なる動作をします。

SSH コンソールで失敗したコマンドを実行するたびに接続が閉じられ、SSH クライアントが終了します。

一例:

  1. リモートコンピュータにログインします。
  2. 私はcd /not-existing-directoryを実行します。
  3. SSHクライアントは、サーバーが接続を閉じたことを報告します。

この行動の理由は何ですか?どのような措置を取ることができますか?

ベストアンサー1

リモートシェルがbash(またはBourneに似ている)の場合、errexitこのオプションがオンになっている可能性があります。このオプションは、「単純な」コマンド(例cd:)がエラーを返すとすぐにシャットダウンするようにシェルに指示します。

ログインしたら、次のコマンドを実行して確認します。

echo "$-" | grep e

そのオプションをオンにすると、次の行が表示されますe。それ以外の場合、テキストは返されません。

または、以下を実行してください。

set -o|grep errexit

このオプションがオンの場合、以下が表示されます。

errexit         on

そうでない場合は、以下が表示されます。

errexit         off

このオプションをオフにするには、次を実行します。

set +o errexit

または

set +e

詳細については、errexit次を参照してください。シェルコマンド言語 - 設定

おすすめ記事