先日サーバーのアップグレードを行ったんだけどやっぱりいろいろ苦戦中。
一番苦戦しているところは毎度のことで redmine 。と ssh の設定。
でも ssh は一応解決。これまでの謎は解けた。
悩んでいた謎は予備サーバーでは再起動してもログインできるのに、メインサーバーでは(再)起動したら エラーでログインできない。
permission denied(Publickey) これが出る。
でも、サーバーでログインして作業したりしていると、外部からもログインできるようになっていた。いろいろ調べたけど Publickey のパーミッションエラーなんだけど何が問題なの?とこれまで悩んでいたわけ。
原因の調査開始ということで挙動の違いを調べる課程で、予備とメインの設定ファイルの違いを見てみると
メイン PasswordAuthentication no 予備 #PasswordAuthentication yes
メイン PermitRootLogin no 予備 PermitRootLogin without-password
の二カ所が違っていた。
PermitRootLogin は root でのログインを許可するかの設定らしい。root ログインはしないので、これは予備を no に変更。悩んでいた問題の設定じゃない。
むしろこっち PasswordAuthentication が関係していることが判明。これはパスワードログインをするかしないかの設定。
ssh -vvv でログ見ていると予備サーバーで rsa キーでログインしていたと思いきや実はパスワードログインしていたということが判明しました。なんと言うことだ。
これを no にすると予備でもログインできなくなった。メイン、予備どちらも rsa で接続できないから予備の方は許可されているパスワードログインを実行していたのでログインできていたとそんなオチでした。
結局のところ、原因はメインサーバーの方はユーザーの問題で rsa のpub キーにアクセスできないから権限エラーでログインできず、予備サーバーは authorized_key のファイルがない。そもそも rsa の設定自体ができていなかったからパスワードログインしていたとそんなオチが待っていた。
サーバー自体にログインして作業すると外部からもログインできるようになったのは、何かの設定がログインすることで有効になって外部からログインできるようになったりしていたと思われるが何をどう追加したのか忘れちゃったorz。
なんだよ、初歩的なミスかよ。という分かってしまえばそういう問題でした。
あとは毎回苦戦している redmine だけ。