仮想環境上のzshのバージョンを上げるために、ソースコードからインストールし、再度SSHでログインしようとしたときに以下のエラーが発生した。

運良く他のログインセッションが生きていたため、ゲストOS側で/var/log/secureを確認したところ、以下のエラーで落ちていることが判明。

yumでインストールしたzsh(/bin/zsh)をアンインストールしたので、ログインシェルである/bin/zshが消え去り、ソースからインストールしたzsh(/usr/local/bin/zsh)がユーザのログインシェルに反映されていないことが原因。

かといって、chshでログインシェルを変えようとすると以下のエラーで落ちる。

おそらく、zshのアンインストール時に/etc/shells内の/bin/zshの記述が抜け落ちてしまっているのが原因。

ということで、/etc/shellsに以下のように/bin/zshと/usr/local/bin/shの記述を追加すればOK。

あとはchshしてログインシェルを/usr/local/bin/zshに変更すればSSHで外部からのSSHが通ります。何にせよ、ログインシェルのプログラムをあれこれする場合は2つ以上セッション貼るかバックアップ取るかした方が安全です。他のログインセッションが生きていなければ詰んでいた…。