はじめに
今回は、さくらVPSにSSHで接続できる端末を増やそうと、
公開鍵認証の設定を施したにも関わらず、接続できませんでした。
今回は、その解決方法を記します。
さくらVPSに沿った内容ですが、原因としては他のサービスでも起こり得ると思いますので、同様のエラーが発生している方は参考にしてみてください。
発生内容
さくらVPSに接続する端末を増やそうと、
ローカルでキーペアを作成しました。
Web管理画面から公開鍵を追加しました。
ローカル端末からサーバに公開鍵認証にてSSHで接続をします。
仮にですが、公開鍵:id_rsa.pub、秘密鍵をid_rsaとします。
ssh -i ~/.ssh/id_rsa user@example -p 22
上のコマンドで接続試行に、以下のエラーが発生し、接続に失敗しました。
Warning: Identity file ~/.ssh/id_rsa not accessible: No such file or directory. no such identity: ..sshid_rsa: No such file or directory user@example: Permission denied (publickey).
ハマった箇所
前述したエラー内容及び、他の端末からは他の端末上で作成したキーで接続できていたことから、原因が秘密鍵にあると仮説を立てて要因になっているであろう箇所を洗いざらい見直していました。
Warning: Identity file ~/.ssh/id_rsa not accessible: No such file or directory. no such identity: ..sshid_rsa: No such file or director
Homebrewに入れたOpenSSHのバージョンが古いか、破損しているためssh-keygenで作成するキーペアが失敗している、基準を満たしていないか?や
.sshやid_rsaの権限が問題?とOpenSSHのバージョンや秘密鍵のパーミッションあたりを疑っていました。
原因と解決
公開鍵がauthorized_keysに追加されていなかった。
さくらVPSの管理画面から追加できたので、公開鍵は問題なく済んでいるだろうとばかり思っていました。疑っていたのも追加する際の改行コード程度でした。
なぜ追記されなかったは不明ですが、Firewallや権限周りを厳しくしたので、その影響があったのかも?しれません。
公開鍵をサーバに配置し、サーバ上で以下コマンドを実行。
cat id_rsa.pub >> ~/.ssh/authorized_keys
こうすることで、公開鍵が正しく配置され、
クライアントから再度SSHを試みると問題なく接続できました。
おわりに
エラー内容的に、Permission denied (publickey).と記載はあるものの、
そもそも認証に使用する秘密鍵が参照できていない、ペアになっていないことが原因で拒否されているかと思いました。
「 ..sshid_rsa: No such file or directory」このようなメッセージがあるのでスラッシュが正しく認識されていない?権限が合っていない?などと考えてしまいました。。
全くの見当違いでした。
参考文献
https://manual.sakura.ad.jp/vps/troubleshoot/ssh_connection.html
コメント