またアホなことやっちまった。。。
sshd_configをいじってたら、ログインできなくなっちまいました。
誰かが同じ轍をふまないように、自分のアホ操作をさらしておきます。
はぁー、EC2インスタンスだったし、デプロイもすぐできるようにしてたのがせめてもの救いでした。
sshd_configの修正はログインできなくなることもあるから気をつけろ!!!
前提条件
自分とこの環境はEC2をコンソールなどでつくるのではなく、それに接続したクラウドサービス経由でインスタンス作ってます。
そのサービスの中で独自にスクリプトを書くことができ、公開鍵まで配置してくれるようにしています。
自分のユーザーは管理者が作っててやたらめったら変更などできません。
なのでどんなインスタンスを作っても、自分の秘密鍵でローカルPCからすぐにsshログインできるようになっています。
はい、もう一回言います。
公開鍵認証でローカルPCからsshログインしていました。パスワードは設定していません。
なにをしたかったのか?
EC2のインスタンスを建てて、特定のユーザー(hogeユーザー)でdocker コンテナや別のインスタンスからログインできるようにしたかったわけです。
パスワード認証で。
インスタンスは作りなおすこともあるので公開鍵認証にしてると再度公開鍵の配置が煩わしいと思ったのでパスワード認証にしてました。
修正方法は?
※実際にコピペして有効にするなよ!やるときはちゃんと考えろよ!
パスワード認証にするには/etc/ssh/sshd_configに下記を書いて有効にします。
PasswordAuthentication yes
書いたらsshdをリロードして反映させましょう。
systemctl reload sshd
修正したらどうなった?
はい、これで別インスタンスからhogeユーザーとしてパスワード認証でsshログインできてめでたしめでたし!
っと思ってログアウトしてみました。
再度ローカルPCからログインしてみると、なんとパスワードを聞かれてログインできない!
最初のログインユーザーではパスワード設定してないので、なんにも対処のしようがありません。\(^o^)/オワタ
まとめ
しかたないのでインスタンスを作り直してどうにかしました。
EC2インスタンスだったこと、まだ中身にはなんも入れてなかったことがせめてもの救いでした。
- sshd_configの修正はほんとに気を付けよう。
- ansibleでもシェルスクリプトでも、さっとデプロイできる(復旧できる)操作を作っておいたほうがいいよ。