概要
SSHサーバーは、クライアントからのSSH接続要求を受信して認証し、安全な通信セッションを確立します。これにより、リモートでコマンドを実行したり、ファイルを安全に転送したりできます。サーバーのコアコンポーネントは `sshd` デーモンであり、このデーモンは通常、システム起動時に自動的に開始されるように設定されています。
主な機能
SSHサーバーが提供する主要な機能です。
- リモートシェル接続: 暗号化されたターミナルを通じてリモートサーバーに接続し、コマンドを実行
- 安全なファイル転送: SCP (Secure Copy) および SFTP (SSH File Transfer Protocol) を使用したファイルのアップロード/ダウンロード
- ポートフォワーディング: ローカル/リモートポートをトンネリングして、セキュアでないサービスへの安全なアクセスを提供
- 鍵ベース認証: パスワードの代わりにSSHキーを使用して、より強力なセキュリティ認証
主なオプション (sshd コマンド)
`sshd` デーモンを直接実行する際に使用される主なオプションです。通常は `systemd` のようなサービスマネージャーを通じて実行されるため、これらのオプションは主にデバッグや特定の環境設定テスト時に役立ちます。
実行とデバッグ
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`ssh-server` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
インストール
ほとんどのLinuxディストリビューションでは、SSHサーバーは `openssh-server` パッケージを通じて提供されます。デフォルトでインストールされていない場合は、次のコマンドを使用してインストールできます。
Debian/Ubuntu ベースのシステム
sudo apt update
sudo apt install openssh-server
APTパッケージマネージャーを使用して `openssh-server` をインストールします。
CentOS/RHEL ベースのシステム
sudo yum install openssh-server
# または Fedora/最新RHEL:
sudo dnf install openssh-server
YUM または DNF パッケージマネージャーを使用して `openssh-server` をインストールします。
使用例
SSHサーバーを管理および設定する一般的な方法です。
SSHサービス開始
sudo systemctl start ssh
SSHデーモン (`sshd`) サービスを開始します。
SSHサービス再起動
sudo systemctl restart ssh
SSHデーモンサービスを再起動します。設定ファイルの変更を適用する際によく使用されます。
SSHサービスの状態確認
sudo systemctl status ssh
SSHデーモンサービスの現在の状態を確認します。
SSHサービス自動起動の有効化
sudo systemctl enable ssh
システム起動時にSSHサービスが自動的に開始されるように設定します。
ファイアウォールでSSHポートを開く (UFW)
sudo ufw allow ssh
# または特定のポートを使用する場合:
sudo ufw allow 2222/tcp
UFW (Uncomplicated Firewall) を使用している場合、SSHのデフォルトポート (22) を許可します。
SSH設定ファイルの編集
sudo nano /etc/ssh/sshd_config
SSHサーバーの主要な設定ファイルである `sshd_config` を編集します。変更後は必ずSSHサービスを再起動する必要があります。
ヒントと注意点
SSHサーバーを安全かつ効率的に運用するための重要なヒントと注意点です。
セキュリティ強化のヒント
SSHサーバーのセキュリティを強化するための推奨事項です。
- **デフォルトポートの変更**: デフォルトのSSHポート (22) を、あまり知られていない別のポート (例: 2222) に変更して、ランダムな攻撃試行を減らします (`/etc/ssh/sshd_config` ファイルの `Port` ディレクティブを編集)
- **パスワードの代わりに鍵ベース認証を使用**: SSHキーペアを生成して、パスワード認証よりもはるかに強力なセキュリティを提供します (`PasswordAuthentication no` を設定)
- **rootログインの無効化**: `root` アカウントでの直接SSH接続を禁止し、一般ユーザーアカウントでログインしてから `sudo` を使用するようにします (`PermitRootLogin no` を設定)
- **Fail2Banの使用**: 繰り返しログインに失敗したIPアドレスを自動的にブロックする `Fail2Ban` のようなツールをインストールして、ブルートフォース攻撃を防ぎます。
- **許可するユーザー/グループの制限**: `AllowUsers` または `AllowGroups` ディレクティブを使用して、SSH接続を許可するユーザーまたはグループを明示的に指定します。
file SSH設定ファイルのパス
/etc/ssh/sshd_config
SSHサーバーの主な設定ファイルは次のパスにあります。