Linuxサーバ

Ubuntu 24.04でSSH接続を安全に設定する方法|鍵認証+LAN内限定+ルーター設定

【Ubuntu 24.04対応】安全なSSH接続の設定方法

この記事では、公開鍵認証方式を使ってSSH接続を許可し、パスワードログインを無効化し、さらにLAN外からのアクセスを遮断する方法を解説します。

🔰SSHとは?

SSH(Secure Shell)とは、ネットワーク越しに安全にサーバへ接続するための通信プロトコルです。特にLinuxやUbuntuのサーバ管理では定番の手段で、ファイル転送やリモート操作などが行えます。

🔐公開鍵認証方式とは?

SSH接続の認証方法には「ユーザー名+パスワード」方式と、「公開鍵+秘密鍵」方式の2つがあります。

公開鍵認証方式では、

  • サーバに「公開鍵」を登録し、
  • クライアント(自分のPC)に「秘密鍵」を保管

という構成で、秘密鍵を持つ人だけがログイン可能になります。
ブルートフォース攻撃を防ぎやすく、セキュリティ的にも非常に優れています。

🔧鍵ペアを作成する(クライアント側)

まずは自分のPC上でSSH鍵ペアを作成します。

ssh-keygen -t rsa -b 4096 -C "ユーザー名@192.168.1.10"
オプション 説明
-t rsa RSA方式を使用
-b 4096 鍵の長さを4096ビットに
-C 任意のコメント(識別目的)を追加

💡補足:
-C "ユーザー名@IPアドレス" の形式でコメントを追加しておくと、
複数の鍵を扱う際に「どの鍵がどの用途か」がわかりやすくなります。

🚀公開鍵をUbuntuに登録

生成された id_rsa.pub の中身をUbuntu側の ~/.ssh/authorized_keys に追記します。

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

公開鍵の内容を貼り付けて、Ctrl + OEnterCtrl + X で保存しましょう。

⚙ SSH設定ファイルの修正

以下のファイルを編集して、パスワードログインを無効化します。

sudo nano /etc/ssh/sshd_config

以下のように設定します:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
ListenAddress 192.168.1.10

※ListenAddress を指定すると、LAN外からの接続を防ぐ効果もあります。

🔄SSHサービスの再起動

sudo systemctl restart ssh

設定を反映させるために、SSHを再起動します。

🧪WindowsからSSH接続を試す方法(PowerShell)

ssh -i C:\Users\ユーザー名\.ssh\id_rsa ubuntu@192.168.1.10

ポイント:
- -i で秘密鍵ファイルを指定します。
- ユーザー名とIPアドレスは環境に合わせて変更してください。

🛡LAN外からのアクセスを拒否する方法

Ubuntu側の設定に加えて、以下の手順でLAN外からの接続を物理的にブロックできます。

1. ルーターのポート開放を確認

ポート22(SSH)が開放されている場合は閉じてください

2. UPnPを無効化

UPnP(自動ポート開放機能)が有効だとSSHが外部に晒される危険があります。

3. ファイアウォールでLAN内アクセスのみ許可

sudo ufw allow from 192.168.0.0/16 to any port 22
sudo ufw deny 22
sudo ufw enable

✅まとめ

  • SSHは公開鍵認証方式が安全
  • パスワードログインは必ず無効にする
  • LAN内からのみ接続を許可することでセキュリティが高まる

安心・安全な自宅サーバ運用を楽しみましょう!

オススメの記事

-Linuxサーバ
-, , ,