Skip to content

突然ssh接続でDebianに繋がらなくなったときの対処法

Published: at 23:43

Table of contents

Open Table of contents

記憶喪失のDebian

3日前くらいに、さくらVPS上のDebianに対して公開鍵の設定しました。
設定当初から問題なく公開鍵認証で接続できていたのですが、今日ssh接続を試みると、突然Permission denied (public key)と言われてしまいました。f:id:ikmbear:20200805215246p:plain

何も設定を変えていなかったので、どうしたもんかと。アニメ「一週間フレンズ」しかり、Debianは数日立つと私のことを忘れてしまうのでしょうか。

Debian!俺だよ!思い出してくれよ!」
そう叫んだところで相手はシステム。思いは届きません。一つずつ確認しましょう。

前提

PasswordAuthentication  noChallengeResponseAuthentication  noUsePAM  yes

思い出せDebian

覚えてるか?俺たち、昔はパスワードでssh接続したりしてさ…

Debian「今もパスワード認証できるで」

覚えてるか?この鍵。半分、お前に渡してさ…

# クライアント(mac)にキーペアが作成されていることを確認$ ls ~/.ssh$ cat ~/.ssh/client_rsa.pub# サーバ(debian)に公開鍵が配置されていることを確認$ ls ~/.ssh$ cat ~/.ssh/authorized_keys

Debian「今もちゃんと持ってるで、覚えとるで」

なあDebian、閉ざした心を開いてくれよ…

Debian「心オープンやで〜」

Debian、お前もしかして…

Debian「さっきから好き勝手疑ってくれてますけど」
Debian「全然こっちは問題ないですから。」
Debian「もうひとつ言っておくと、使用する鍵をちゃんと指定すればssh接続できますから!こんな感じで。」

$ ssh -i ~/.ssh/client_rsa -p 3090 [email protected]

Debianは覚えていた編

忘れたのはクライアント(mac)のキーチェーン

実は問題があるのはDebianではなく、キーチェーンの方でした。
macOS 10.12 Sierra以降、キーチェーンが再起動時に読み込まれなくなる仕様となったそうです。

タイトルに「突然」とありますが、実際には「macの再起動」をトリガーとして本事象が発生します。(事象発生まではmacbookをスリープするだけで、再起動していなかったんでしょうね…)

キーチェーンにDebianとの友情を邪魔させない。

再度ssh-add -K ~/.ssh/client_rsaを実行することで、一時的には繋がるようになりますが、再起動すると、またssh接続できなくなってしまいます。
そのため、恒久対応として~/.ssh/configに以下の設定を追加します。

Host *  UseKeychain yes  AddKeysToAgent yes

もっとDebianと仲良くなる

せっかくconfigの設定をしたので、毎回ポートやipを打たずに済むような設定もしておきます。

Host ikuma-t  HostName XXX.XXX.XX.XX  User ikuma-t  IdentityFile ~/.ssh/client_rsa  Port 3090  TCPKeepAlive yes  IdentitiesOnly yes

これで再起動してもssh ikuma-tで繋がるようになりました!

感想

コマンドだけでリモートとやり取りするような部分って、「これ何やってんだ?」「どれチェックしたか忘れた…もう一回しらみ潰しにやり直してみよう」ってことが多いと思います。

今回はDebianが記憶喪失したというストーリーで擬人化して考えましたが、とっつきにくい内容だからこそ、自分で噛み砕いてコミカルにしてみるのはなかなか効果的でした!

Debian「途中で設定とかストーリー書くの面倒になったでしょ」
私「ファッ!!!」

参考