Arch LinuxでSSHサーバーを設定・セキュリティ強化する完全ガイド
Arch LinuxにOpenSSHサーバーをインストールし、鍵認証やポート変更などのセキュリティ設定を施す方法をステップバイステップで解説。初心者でも安全にSSH接続できるようになります。
はじめに
このチュートリアルでは、Arch LinuxにOpenSSHサーバーを導入し、安全にリモート接続できるようにするための設定を解説します。最終的には、パスワード認証を無効化し、鍵認証のみでログインできるセキュアな環境を構築します。
目標
前提条件
Step-by-step
1. OpenSSHのインストール
まず、OpenSSHサーバーとクライアントをインストールします。
sudo pacman -S openssh
2. SSHサーバーの起動と自動起動設定
インストール後、sshdサービスを起動し、システム起動時に自動で立ち上がるようにします。
sudo systemctl start sshd
sudo systemctl enable sshd
3. ファイアウォールの設定(必要な場合)
ファイアウォールを使用している場合は、SSHポート(デフォルト22)を許可します。以下はiptablesとfirewalldの例です。
iptablesの場合
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables-save > /etc/iptables/iptables.rules
firewalldの場合
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload
4. SSH鍵ペアの生成(クライアント側)
リモートから接続するクライアントマシンで、SSH鍵ペアを生成します。すでに鍵がある場合はスキップしてください。
ssh-keygen -t ed25519 -a 100
推奨されるオプション:
-t ed25519: より安全で高速なEd25519鍵を使用-a 100: KDFラウンド数を増やしてブルートフォース耐性を向上公開鍵は~/.ssh/id_ed25519.pubに保存されます。
5. 公開鍵をサーバーに転送
生成した公開鍵をサーバーの~/.ssh/authorized_keysに追加します。ssh-copy-idを使うと便利です。
ssh-copy-id -i ~/.ssh/id_ed25519.pub ユーザー名@サーバーIP
手動で行う場合は、サーバー上で以下のコマンドを実行します。
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公開鍵の内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
6. SSHサーバーの設定変更
サーバーの設定ファイル/etc/ssh/sshd_configを編集してセキュリティを強化します。
sudo nano /etc/ssh/sshd_config
以下の設定を追加・変更します。
<h1>ポート番号を変更(例: 2222)</h1>
Port 2222
<h1>rootログインを禁止</h1>
PermitRootLogin no
<h1>パスワード認証を無効化(鍵認証のみ)</h1>
PasswordAuthentication no
<h1>公開鍵認証を有効化(デフォルトで有効)</h1>
PubkeyAuthentication yes
<h1>空パスワードを禁止</h1>
PermitEmptyPasswords no
<h1>接続を許可するユーザーを制限(例: youruser)</h1>
AllowUsers youruser
設定を変更したら、ファイルを保存して閉じます。
7. 設定の反映
設定を反映させるため、sshdサービスを再起動します。
sudo systemctl restart sshd
8. ファイアウォールのポート変更
ポート番号を変更した場合は、ファイアウォールのルールも更新します。
iptablesの場合
sudo iptables -R INPUT 1 -p tcp --dport 2222 -j ACCEPT
sudo iptables-save > /etc/iptables/iptables.rules
firewalldの場合
sudo firewall-cmd --remove-service=ssh --permanent
sudo firewall-cmd --add-port=2222/tcp --permanent
sudo firewall-cmd --reload
9. 接続テスト
新しい設定で接続できるかテストします。クライアントから以下のコマンドを実行します(ポートを変更した場合は-pオプション)。
ssh -p 2222 ユーザー名@サーバーIP
鍵認証が正しく設定されていれば、パスワードなしでログインできるはずです。
動作確認
発展
ForwardAgent no を設定して、エージェント転送を無効化または制限する。AllowUsers や Match Address を使って特定のIPからのみ接続を許可する。journalctl -u sshd でログを確認し、不審なアクセスを監視する。*この記事はArch Linuxを実機で日常運用しているSioが、実際のインストール・設定経験に基づいてAI生成コンテンツをレビュー・補完しています。btrfsサブボリュームとLUKS暗号化環境で検証済みです。*
まとめ
このチュートリアルでは、Arch LinuxにOpenSSHサーバーをインストールし、鍵認証による安全なリモート接続を設定する方法を学びました。ポート変更やrootログイン禁止などの基本的なセキュリティ対策を施すことで、不正アクセスのリスクを大幅に低減できます。さらに発展的な設定を加えることで、より強固なセキュリティを実現できます。