🔐Ubuntu 24.04でSSH接続を安全に設定する方法【鍵認証+LAN内限定】
✅ 鍵認証方式(公開鍵・秘密鍵)を使う
✅ ユーザ名・パスワードによるログインは不可にする
✅ LAN内からの接続のみを許可(外部アクセス遮断)
🔰SSHと鍵認証のかんたん解説
🔸SSHとは?
SSH(Secure Shell)は、サーバに安全にリモート接続するための仕組みです。パスワードを使ったログインより安全な方法として「公開鍵認証方式」が使われます。
🔸公開鍵認証方式とは?
- サーバに「公開鍵」
- 手元のPCに「秘密鍵」
を配置して、鍵が一致する場合のみ接続を許可する仕組みです。
これにより、「パスワードを盗まれて不正ログインされる」というリスクを大幅に下げることができます。
🛠SSHの鍵認証を有効にする設定手順(Ubuntu 24.04)
① 公開鍵・秘密鍵のペアを作成する
macOS/Linuxの場合:
ssh-keygen
→ ~/.ssh/id_rsa
(秘密鍵)と id_rsa.pub
(公開鍵)が作成されます。
② 公開鍵をUbuntuサーバに登録
クライアントから以下のように送信します:
ssh-copy-id ユーザ名@サーバIPアドレス
または手動で ~/.ssh/authorized_keys
に追記してもOKです。
③ パスワードログインを無効にする
以下ファイルを編集します:
sudo nano /etc/ssh/sshd_config
以下のように変更します:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PubkeyAuthentication yes
設定を反映させます:
sudo systemctl restart ssh
🔒UFWでLAN内以外からのSSH接続を遮断する
まずUFW(ファイアウォール)を有効化:
sudo ufw enable
自分のLAN内IP帯(例:192.168.1.0/24)だけを許可:
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
その他のSSHポートへのアクセスは禁止:
sudo ufw deny 22
状態確認:
sudo ufw status verbose
📡ルーター側の設定で「ポート22」の開放を無効にする
ルーターの管理画面(例:192.168.1.1など)にログインして、ポートフォワーディング(ポート開放)をしていないか確認してください。
- 「外部→内部のポート22転送」がある場合 → 削除
- UPnPでポートが自動開放される機種 → OFF推奨
✅設定後の確認方法
-
- 自宅LAN内の別端末からSSH接続できるか確認:
ssh -i ~/.ssh/id_rsa ユーザ名@192.168.x.x
- 外部ネットワーク(スマホのテザリングなど)から接続できないことを確認!
📝まとめ
- 秘密鍵・公開鍵によるSSHログインに限定
- パスワードログインは禁止にしてセキュリティ強化
- ファイアウォールとルーター設定でLAN内に限定
これで、自宅サーバのSSH接続はかなり安全になります!