LoginSignup
0
0

More than 1 year has passed since last update.

Linuxサーバー(Debian)にssh接続しようとする間に詰まった「Permission denied (publickey)」の対応

Posted at

背景

さくらのレンタルサーバーで作成した学習用のLinuxサーバー(Debian)に、ローカルのPCからSSH接続をしようとしました。
ある程度の設定ができたつもりでいましたが、接続の際に下記のエラーが出て詰まりました。

Permission denied (publickey)

やっと解消できたので、ここに纏めます。

間違い等ありましたら、ご指導の程よろしくお願いいたします。

結論

  1. ファイルやディレクトリのファイルパーミッションを 強い権限にしすぎていた(盲点でした。広げすぎてもダメっぽい。)
  2. .ssh関連のファイルを、接続したいユーザーではなくrootユーザーのホームディレクトリにおいていた
  3. sshd_configに、重複してはいけない記述を重複させていた(RSAAuthentication yes)

これらの問題が同時に起こっており、解決に時間がかかった次第です。
下記に対応した経緯をご説明します。

それぞれの経緯と解説

1. ファイルの権限について

最終的には、この問題に対応して接続できるようになりました。

ssh接続をする際に、.sshディレクトリや、接続を許可する公開鍵を登録しておくファイルであるauthorized_keysのファイルパーミッションを変更する必要があるのは知っていたのですが、一番権限が強ければ接続できるだろうと思い、学習用のテストサーバーだったこともありchmod 777で設定していました。

どうやらこれがいけなかったらしく、最終的に...

  • .sshは700
  • authorized_keysは600

を設定したところ、無事に接続できました。

■ 参考にさせていただいた記事
公開鍵でSSH接続できないときに見るところ

そもそも777で設定しない、権限の範囲が広ければ包括的に解決できるという思い込みをなくすことを学んで反省しました。

2. .sshを接続したいユーザーのホームディレクトリではない場所に作成していた

今回のLinuxサーバーの場合、rootユーザーのホームディレクトリは~に該当する場所で、他のユーザーの場所は/home/ユーザー名でした。正直これがよくわかっておらず、.sshは1箇所だけにあると誤解しており、rootユーザーで作成していました。

ローカルからログインしたいユーザーにログインユーザーを切り替えて、.sshディレクトリを作成し、「1. 」の公開鍵や設定ファイルを配置しました。

3. サーバー側の設定ファイル「sshd_config」で重複の記述エラー

重複の記述を何かに書くとエラーが起こるという経験はあったのですが、今回引き起こしたエラーの概要は以下になります。

sshd_config

RSAAuthentication yes
PubkeyAuthentication yes

こちらを両方Yesにして「コメントアウトを解除して」いました。

どうやらRSAAuthentication yesを解除する必要はなかったらしく、コメントアウトをしたら解決しました。

こちらはDebian側のログを見た時にDeprecated option RSAAuthenticationという記載があったので気づきました。

※ Debian側の認証関連のログは、var/log/auth.logで確認できます。

■ 参考にさせていただいた記事
sshd_config に RSAAuthentication no を設定する必要はもうない
“Deprecated option RSAAuthentication” とメッセージが出たら

以上、3つの問題を対応したところ接続ができました。
最後に、解決までに行ったことを1つ記載します。

解決方法(初知り&オススメです)

エラーに気付いた方法としては、ローカルから下記のコマンドを入力しました。

ssh -vvv 接続したいユーザー名@アドレス 

こちらのコマンドを実行すると、進行中のデバッグメッセージが表示されます。
ssh接続が失敗してPermission denied (publickey)となった場合に、どこでエラーになっているのかを調べるきっかけになりました。

ぜひやってみてください。どなたかの参考になれば嬉しいです。

0
0
4

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
0
0