セキュリティ
【セキュリティ】SSHを守る最初の一歩:鍵認証とrootログイン禁止
2026年8月16日

レン
サーバー立てたばっかりなのに、さっそく変なログインの記録がいっぱいあるんだけど…!誰かに狙われてる!?

ウィルスン
フフフ…気づいたか。キミのサーバーがインターネットに顔を出した瞬間から、ワタシのような攻撃者はIPアドレスを片っ端からスキャンして、SSHのポートを叩き続けているのだよ。放っておけば、いつか弱いパスワードを当てられてしまう。

レン
ひええ…プロクラ、どうすればいいの!?

プロクラ
落ち着いて。ウィルスンはこう見えて『守るために攻め方を教えてくれる』いいやつだよ。SSHの防御は難しくない。まずやるべきは3つだけだ。
パスワード認証と公開鍵認証の違い
パスワード認証
あなたパスワードを送る →サーバー
合っていれば誰でも入れる。総当たりで試され続ける
公開鍵認証
あなた
秘密鍵🔑鍵は送らない
署名だけを送る →サーバー
公開鍵
秘密鍵🔑鍵は送らない
署名だけを送る →サーバー
公開鍵
秘密鍵は手元から出ない。通信を覗かれても鍵そのものは盗まれない
1. パスワード認証をやめて鍵認証にする

プロクラ
一番重要なのがこれ。パスワードは総当たり(ブルートフォース)で破られる可能性があるけど、SSH鍵認証は事実上破れない長さの鍵を使う。手元で鍵ペアを作って、公開鍵だけをサーバーに登録し、/etc/ssh/sshd_configでPasswordAuthentication noにするんだ。

ウィルスン
パスワード認証さえ切ってくれれば、ワタシの総当たり攻撃は完全に無力になる。これだけで攻撃の大半は防げるのだ…!悔しいがな。
2. rootでの直接ログインを禁止する

プロクラ
PermitRootLogin noにして、rootに直接ログインできないようにする。普段は一般ユーザーで入って、必要なときだけsudoで管理者権限を使う。こうすれば、攻撃者は『ユーザー名』と『鍵』の両方を当てないといけなくなる。

レン
rootって最初から名前が分かってるもんね。それを禁止するだけで一気にハードルが上がるのか!
3. 設定を反映して、接続を切らずに確認する

プロクラ
設定を変えたらsudo systemctl restart sshで反映。ここで大事なのは、今つないでいるSSH接続はそのままにして、別のターミナルから新しくログインできるか確認すること。もし設定ミスで入れなくなっても、元の接続が生きていれば直せるからね。
- ローカルで鍵ペアを生成し、公開鍵をサーバーの ~/.ssh/authorized_keys に登録
- sshd_config で PasswordAuthentication no / PermitRootLogin no を設定
- 設定反映後、別ターミナルから鍵でログインできることを必ず確認
- 余裕があればSSHのポート番号を22から変更するのも目くらましになる(本質的対策ではない)

ウィルスン
覚えておけ。ワタシが最初に狙うのは、いつも『一番手を抜いているサーバー』だ。鍵認証にするだけで、キミは狙う価値のない相手になる。それが一番の防御なのだよ。
あわせて読みたい
- セキュリティ【セキュリティ】「うちみたいな小さいサーバーは狙われない」の誤解攻撃の大半は人が選んだ標的ではなく機械による無差別な走査です。何を探されているのか、乗っ取られると何に使われるのか、そして「狙う価値のない相手」になる方法を解説します。
- セキュリティ【セキュリティ】APIキー・パスワードの管理:GitHubに上げてはいけない認証情報をコードに書かない、の次に来る「どこに置くか」。規模別の置き場所と、本番と検証で鍵を分けるなど漏れにくくする工夫を解説します。
- セキュリティVPSのファイアウォール完全ガイド:考え方と、各社の機能の違い使う入口だけを開けるという考え方から、サーバー内で動かす場合とネットワーク側で止める場合の違い、主要8社が用意している機能の比較までをまとめました。
- セキュリティ【セキュリティ】バックアップは最後の砦:ランサムウェアと事故に備える3-2-1ルールの意味、同じサーバーに置いてはいけない理由、何をどの頻度で取るのか、そして「取れているつもり」で戻せない事態を避ける確認方法を解説します。