UbuntuでのSSHサーバー設定と運用ガイド

SSHサーバーのインストールと設定

UbuntuでSSH(Secure Shell)サーバーをセットアップする手順を説明します。SSHを使用することで、リモートから安全にサーバーに接続し、コマンドの実行やファイル転送が可能になります。

1. OpenSSHサーバーのインストール

まず、OpenSSHサーバーパッケージをインストールします。

sudo apt update
sudo apt install openssh-server

インストール後、SSHサービスは自動的に起動します。

2. SSH設定ファイルの編集

SSHサーバーの設定は /etc/ssh/sshd_config ファイルで行います。このファイルを編集する際は、必ずバックアップを取ることを推奨します。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

セキュリティ向上のため、以下の設定を確認・変更することを検討してください。

  • Rootログインの禁止: PermitRootLoginno に設定することで、rootユーザーでの直接ログインを禁止します。これにより、ブルートフォース攻撃のリスクを減らせます。
    PermitRootLogin no
    
  • パスワード認証の禁止(推奨): 公開鍵認証を使用する場合は、PasswordAuthenticationno に設定することで、パスワードによるログインを禁止し、セキュリティを大幅に向上させます。
    PasswordAuthentication no
    
  • ポート番号の変更: デフォルトの22番ポートから別のポート番号に変更することで、一般的なポートスキャンからの攻撃を減らせます。
    Port 2222 # 例: 2222番ポートに変更
    

変更を保存したら、SSHサービスを再起動して設定を適用します。

sudo systemctl restart ssh

3. ファイアウォールの設定 (UFW)

SSHポートを変更した場合や、ファイアウォールが有効になっている場合は、新しいSSHポートへのアクセスを許可する必要があります。UbuntuではUFW (Uncomplicated Firewall) がよく使われます。

# SSHのデフォルトポート (22番) を許可する場合
sudo ufw allow ssh

# または、変更したポート番号を許可する場合 (例: 2222番)
sudo ufw allow 2222/tcp

# ファイアウォールを有効にする (初めての場合)
# sudo ufw enable

# ファイアウォールの状態を確認
sudo ufw status

SSH接続時の警告「REMOTE HOST IDENTIFICATION HAS CHANGED!」について

SSH接続時に REMOTE HOST IDENTIFICATION HAS CHANGED! という警告が表示されることがあります。これは、接続しようとしているサーバーのSSHホストキーが、クライアントの known_hosts ファイルに記録されているものと異なっている場合に発生します。

この警告は、サーバーの再インストールやIPアドレスの変更、あるいは中間者攻撃の可能性を示唆しています。正当な理由でサーバーのホストキーが変更されたことが確実な場合は、以下のコマンドでクライアント側の known_hosts ファイルから該当するエントリを削除することで解決できます。

ssh-keygen -R [サーバーのIPアドレスまたはホスト名]

このコマンドを実行すると、~/.ssh/known_hosts ファイルから指定されたホストのエントリが削除され、次回接続時に新しいホストキーが追加されます。