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ログインの禁止:
PermitRootLogin
をno
に設定することで、rootユーザーでの直接ログインを禁止します。これにより、ブルートフォース攻撃のリスクを減らせます。PermitRootLogin no
- パスワード認証の禁止(推奨): 公開鍵認証を使用する場合は、
PasswordAuthentication
をno
に設定することで、パスワードによるログインを禁止し、セキュリティを大幅に向上させます。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
ファイルから指定されたホストのエントリが削除され、次回接続時に新しいホストキーが追加されます。