はじめに
リモートからサーバに対してSSHログインを試みた際、失敗するとサーバ側にてエラーログを見たい場合があります。
そのような際にはsshd_config
にてログを出力するようにして内容を確認する必要があります。
本記事ではそれらの流れについて記載しました。
環境情報
- Debian GNU/Linux 9 (stretch)
設定ファイルにてログ出力に関する値を指定する
/etc/sshsshd_configにあるファイルの中身を確認します。
例えば以下のようになっている場合は
#Logging #SyslogFacility AUTH #LogLevel INFO
以下のように変更します。
#Logging SyslogFacility AUTH LogLevel DEBUG
ちなみにFacilityとは「ログの種別」を指し、例えばcronに関するログのファシリティは「cron」、カーネルに関するログのファシリティは「kern」と定められています。今回は「AUTH」なので/var/log配下にあるauth.logにメッセージが記録されます。
sshdの再起動
設定ファイルを書き換えて保存したのみではアクセスはできないので、sshdを再起動します。
systemctlコマンドにてサービスの状態を確認し
$ systemctl status sshd.service ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab Active: active (running) since ... UTC; 6s ago Process: 25043 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) ... CGroup: /system.slice/ssh.service mq25044 /usr/sbin/sshd -D
restartにて再起動を行います。
$ systemctl restart sshd.service
再度statusを確認して起動を確認します。
auth.logを確認する
再度SSHを試みると以下のようにログが/var/log/auth.logを確認します。
... XX instance-1 sshd[25092]: debug1: attempt 1 failures 0 [preauth] XX instance-1 sshd[25092]: debug1: temporarily_use_uid: 1000/1001 (e=0/0) XX instance-1 sshd[25092]: debug1: trying public key file /home/xxx/.ssh/authorized_keys XX instance-1 sshd[25092]: debug1: fd 4 clearing O_NONBLOCK XX instance-1 sshd[25092]: Authentication refused: bad ownership or modes for file /home/xxx/.ssh/authorized_keys XX instance-1 sshd[25092]: debug1: restore_uid: 0/0 XX instance-1 sshd[25092]: debug1: temporarily_use_uid: 1000/1001 (e=0/0) XX instance-1 sshd[25092]: debug1: trying public key file /home/xxx/.ssh/authorized_keys2 XX instance-1 sshd[25092]: debug1: Could not open authorized keys '/home/xxx/.ssh/authorized_keys2': No such file or directory ...
ログが詳細に確認できます。
今回はファイルの権限に不備があったことが分かります。
ちなみにauthorized_keys2というファイルを自動で探しに行く機構があるんですね。
こちらの修正が終われば以下のようにメッセージとなり、無事にログインできます。
XX instance-1 sshd[25053]: debug1: matching key found: file /home/xxx/.ssh/authorized_keys, line 2 RSA SHA256:... XX sshd[25053]: debug1: restore_uid: 0/0 XX instance-1 sshd[25053]: debug1: do_pam_account: called XX instance-1 sshd[25053]: Accepted publickey for xxx from A.B.C.D port 58474 ssh2: RSA SHA256:.. ...
このままですとauth.logが肥大するので、不要であれば再度ログ部分に関する記載をコメントアウトしてください。
終わりに
以下事象を調査した際の流れをメモしましたが
トラブルシューティングの流れとしても利用できるのでご参考になれば幸いです。