私はDebianまたはWindowsとPuttyを使用してSSH経由でリモートDebianシステムに接続しています。リモートシステム(Debian)は、私が知っている他のSSHサーバーとは異なる動作をします。
SSH コンソールで失敗したコマンドを実行するたびに接続が閉じられ、SSH クライアントが終了します。
一例:
- リモートコンピュータにログインします。
- 私はcd /not-existing-directoryを実行します。
- SSHクライアントは、サーバーが接続を閉じたことを報告します。
この行動の理由は何ですか?どのような措置を取ることができますか?
答え1
リモートシェルがbash(またはBourneに似ている)の場合、errexit
このオプションがオンになっている可能性があります。このオプションは、「単純な」コマンド(例cd
:)がエラーを返すとすぐにシャットダウンするようにシェルに指示します。
ログインしたら、次のコマンドを実行して確認します。
echo "$-" | grep e
そのオプションをオンにすると、次の行が表示されますe
。それ以外の場合、テキストは返されません。
または、以下を実行してください。
set -o|grep errexit
このオプションがオンの場合、以下が表示されます。
errexit on
そうでない場合は、以下が表示されます。
errexit off
このオプションをオフにするには、次を実行します。
set +o errexit
または
set +e
詳細については、errexit
次を参照してください。シェルコマンド言語 - 設定