のーとの切れ端 - LinuxのSSH公開鍵認証実装で躓いた貴方へ贈るチェックリスト
累計5hくらいハマッてしまったうっかりさんなのーとの主の、のーとの主による、のーとの主のためのチェックリスト。
もしハマッたかたがおられたら、ご参考まで。
接続したいサーバの以下の部分をチェックしてください。
■sshdサービス側
要件を満たす設定になっているか
設定変更後にサービス再起動(service sshd restart)をしたか
<参考>
SSH 接続での root によるログイン禁止と公開鍵認証を強制 〜 CentOS6 | EasyRamble
↓特にここ
# rootでの認証を禁止
PermitRootLogin no# パスワードでの認証を禁止(公開鍵による認証のみにする)
PermitEmptyPasswords no
PasswordAuthentication no# RSA公開鍵による認証
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
■接続したいユーザのhomeディレクトリ
パーミッションとファイル所有者が正しく設定されているか
<参考>
Tera Termで鍵を作って鍵認証でサーバにログインするまで – 上田ブログ
<パーミッション>
・「.ssh」ディレクトリ 700
・「.ssh/authorized_keys」 644
<ファイル所有者>
すべて「接続したいユーザ」(※グループも設定忘れずに)
-----
過不足あるかもしれないけど、今思いつくのはこんなところ。
私はこの<ファイル所有者>でひたすら詰まっていました(;∀;)
あとこれはおまけですが、
TeratermでSCP転送をしようとするとPermission Deniedになる件でもハマりました。
どうやらTeratermははじめにログインしたユーザで転送をかけるようなので、例えば中でrootにスイッチしててもはじめにSSHでつないだユーザAの権限がないと駄目なようです。一瞬だけパーミッション777発動が一番楽みたいですね。
以上、備忘録でした。