LoginSignup
1
0

More than 1 year has passed since last update.

VPSへSSH接続したときにPermission denied (publickey)が出た時の対処

Posted at

VPSへのSSH接続、Permission denied (publickey)たまに出ますよね。。
久々VPSへの接続するぞって時にこのエラーが出て結構ストレスになっています。
最近、以下の方法でエラーが解消できたので参考程度に見ていただければと思います。

自分の環境

PC:MacBookAir (M1チップ、Bigsur)
VPS:さくらVPS
接続方法:SSH接続(ノーパスワード)

方法1.パーミッションの確認

これはエラー名でググるとだいたい出てくる対処法のため、試していると思いますが念のため。。
キーとキーが保存されているディレクトリの権限確認です。
参考URL:ssh接続でPermission deniedと表示されたときの対処法

方法2.SSH AGENTへの秘密鍵の登録

僕は上記方法でダメだったので、秘密鍵の発行と登録はできているけど、接続時に秘密鍵がうまくサーバに渡せていないのではないか?ということを疑いました。
そこで登録した秘密鍵を必要な時に取り出してくれるSSH AGENTで秘密鍵の登録状況を調べ、秘密鍵を登録しました。僕はこれでVPSへのSSH接続がなおりました。

まず、以下コマンドで情報を確認します。
(以下はMacターミナルで実行します)

ssh-add -l
#=> コマンドの結果として僕の場合は以下が表示されました
The agent has no identities.

特に何も登録がされていないようなので、登録を実行

ssh-add ~/.ssh/client_rsa
#=> client_rsaは、rsa鍵ファイルでrsa鍵に別名をつけている場合はこのファイル名に限りません

以下コマンドで登録状態を再確認。

ssh-add -l
#=> コマンドの結果として僕の場合は以下が表示されました
2048 ****(文字列が続く)

登録ができていることを確認できたので、VPSへSSH接続を試す。
⇨接続できた

方法3.秘密鍵の再発行

一番確実な方法かもしれません。。(僕も何回もお世話になりました)
参考にしているURLを貼ります。
ssh-add ~/.ssh/client_rsa

番外編 Connection refused(接続拒否) エラーが発生した場合の対処法

これは今回のとは別エラーですが、もし出た時に解消する参考になるかもと思い、蛇足ですが載せておきます。
(ただ、根本的な解決にはいたっていません。。)
・確認
サーバーに対してネットワーク経路が確保できているか確認する。

ping サーバIPアドレス
#=> 自分の場合はtimeoutが発生

・解決方法
別のネットワークで接続してみる。
⇨自分の場合はスマホのデザリングからポケットwifiに切り替えることで解消

以上です。

何かのお役に立てれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0