サーバーへのSSH接続画面を前に、鍵認証への切り替えを落ち着いて進めようとしている一人運用の保守担当者

SSHを安全にする基本|鍵認証とrootログイン禁止の始め方

「SSHのパスワード認証、そろそろ鍵にしたほうがいいよな」。 頭では分かっているのに、なかなか手が付かない設定の代表格ですよね。設定を間違えて自分がサーバーに入れなくなったら——そう考えると、動いている本番にはなおさら触りたくなくなります。

その慎重さは、まったく正しい感覚です。SSHの設定変更は、手順を間違えると本当に自分を締め出してしまう作業だからです。だからこそ、大事なのは気合いではなく「締め出されない順番」を知っておくことです。

この記事では、SSHを安全にする最初の一歩——鍵認証への切り替えrootログインの禁止を、一人運用でも自分を締め出さずに進められる順番で、一緒に整理していきます。

結論:SSHの安全化は、①今の接続を切らずに別のセッションを1つ確保する → ②鍵認証で入れることを先に確認する → ③そのうえでパスワード認証とrootログインを止めるの順で進めます。「先に鍵で入れることを確かめてから、古い入口を閉じる」。この順番さえ守れば、締め出しの事故はほぼ防げます。

設定ファイルの場所やコマンドは、OS(Ubuntu/Rocky/Amazon Linux など)やバージョンで少しずつ違います。この記事の順番と考え方を土台に、細かい書式は必ず自分の環境の公式情報で確認してください。

なぜ「パスワード認証」と「rootログイン」が狙われやすいのか

まず、なぜこの2つを見直すのかを一言だけ。責める話ではなく、理由が分かると安心して手を動かせます。

鍵認証に切り替えると「パスワードを試す」という攻撃自体が通らなくなり、rootログインを止めると「rootを直接狙う」入口が消えます。これがSSH安全化の、いちばん効く2手です。

順番に進める(自分を締め出さないために)

SSHを安全にする手順を、別セッション確保・鍵で入れる確認・古い入口を閉じるの3段で上から順に示した図
先に新しい入口で入れることを確かめてから、古い入口を閉じる

ここからが本番です。ポイントは、設定を変えても、今つないでいるセッションはすぐには切れないという性質を使うことです。今の接続を「命綱」として残したまま、別の窓で新しい入り方を確かめます。

① 今の接続を残したまま、作業用のセッションを用意する

いちばん大事な保険です。今SSHでつないでいる窓(セッション)は、作業が全部終わって安全確認できるまで、絶対に閉じないでおきます。

「元に戻せる窓がもう1つある」。この状態を作るだけで、以降の作業の怖さが大きく減ります。

② 鍵認証で入れることを「先に」確認する

パスワード認証を止めるのは、鍵で入れると確認できた後です。順番を逆にしないのが肝心です。

大まかな流れはこうです(コマンドの書式は環境の公式情報で確認してください)。

  1. 手元(自分のPC)で鍵ペアを作る。秘密鍵は自分のPCに厳重に保管し、公開鍵だけをサーバーに渡します。秘密鍵は誰にも渡さない・サーバーに置きっぱなしにしない、が基本です。
  2. 公開鍵をサーバーの対象ユーザーに登録する~/.ssh/authorized_keys に追記)。このファイルとディレクトリの権限(パーミッション)が緩いと鍵認証が働かないことがあるので、~/.ssh は本人だけがアクセスできる状態にします。
  3. 別のターミナルから、鍵を使って実際にログインできるか試す。ここで入れれば、新しい入口は開通です。
  4. 秘密鍵にはパスフレーズ(鍵自体のパスワード)を付けておくと、鍵ファイルが漏れても即座には使われにくくなります。

もし鍵でうまく入れないときは、慌てず①の生きている窓に戻って原因を確認します。多くは公開鍵の貼り付けミスか、権限(パーミッション)まわりです。

③ そのうえで、パスワード認証とrootログインを止める

鍵で入れることが確認できて初めて、古い入口を閉じます。設定ファイル(多くは /etc/ssh/sshd_config、環境により /etc/ssh/sshd_config.d/ 配下の追加ファイル)を編集します。

rootを止めた後は、一般ユーザーでログインしてから必要に応じて権限昇格(sudo など)する運用に切り替わります。日々の作業がこの形になっているかも、あわせて確認しておきましょう。

ここも一緒にやると効く(余裕があれば)

②③までできれば、SSHの安全性はぐっと上がります。時間に余裕があるとき用に、相性のいい一手も置いておきます。無理に一度にやらなくて大丈夫です。

影響:この2手で、何が変わるか

鍵認証とrootログイン禁止をやり切ると、目に見えて変わることがあります。

逆に、パスワード認証を開けたまま・rootログインを許したまま公開し続けると、実害が出ていなくても「開いている入口」を抱え続けることになります。今日この2手を進めておくと、その不安を静かに一つ減らせます。

明日やること:まず1台で「鍵で入れる」を確認する

いきなり全サーバーを設定変更する必要はありません。明日できる、いちばん小さくて安全な一歩はこれです。

  1. 今いちばん大事な1台を選ぶ(練習を兼ねるなら、止まっても困らない検証用の1台でも可)。
  2. 今の接続を残したまま、手元で鍵ペアを作り、公開鍵をそのサーバーに登録する。
  3. 別のターミナルから、鍵でログインできるか試す。ここまでで「新しい入口が開いた」状態を確認する。
  4. 入れることを確認できたら、そこで一区切り。パスワード認証とroot禁止の反映は、落ち着いた時間帯に②③の順で。
  5. うまくいったら、その手順を自分の環境用のメモに1枚書き残す。2台目からはそれをなぞるだけになります。

今日は「鍵で入れることを確認する」まででも十分な前進です。古い入口を閉じるのは、確認できた後でゆっくりやれば大丈夫です。

「SSH安全化」チェックリスト

本番で慌てないための、平時の確認用です。コピーして、自分の環境に当ててみてください。

最低ラインは、「鍵で入れることを確認してから、パスワード認証とrootログインを止めている」——この順番が守れていれば、締め出しの事故はほぼ防げます。

全部に○が付かなくても大丈夫です。まずは「鍵で入れる確認」と「順番を守る」の2つから埋めていきましょう。

よければ、こちらも

SSHの安全化は、サーバーまわりの棚卸しや引き締めと一緒にやると効果がまとまります。あわせて1枚にしておくと、次の点検がぐっと楽になります。

SSHの鍵認証への切り替えを終え、安心して席で一息ついている一人運用の保守担当者

SSHの設定変更は、怖がって後回しにしてしまいがちな作業です。でも、怖さの正体は「締め出し」で、それは順番を守れば避けられます。先に鍵で入れることを確かめてから、古い入口を閉じる。たったこれだけです。 今日は1台で「鍵で入れる」を確認するところまでで十分です。その一歩が、あなたのサーバーの入口を、静かに一つ堅くしてくれます。

ほかの実務ヒントは記事一覧からどうぞ。保守運用の小さな備えを、メールでも少しずつお届けしています。