【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 + O
→ Enter
→ Ctrl + 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内からのみ接続を許可することでセキュリティが高まる
安心・安全な自宅サーバ運用を楽しみましょう!