概要
sshdはバックグラウンドで実行され、デフォルトでTCPポート22番を介してSSHクライアントからの接続を待ち受けます。すべての通信は暗号化されてセキュリティが維持され、さまざまな認証方式(パスワード、公開鍵など)をサポートしています。
主な機能
- 安全なリモートシェル接続の提供
- SCP/SFTPによるファイル転送のサポート
- ポートフォワーディングおよびトンネリング機能
- 多様な認証メカニズムのサポート(パスワード、公開鍵)
基本設定ファイル
sshdの動作は主に以下の設定ファイルによって制御されます。
- パス: /etc/ssh/sshd_config
主なオプション
sshdは通常システムサービスとして実行されるため、直接コマンドラインオプションを使用する機会は少ないですが、デバッグやテスト目的で使用できるいくつかのオプションがあります。
実行とデバッグ
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`sshd` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
sshdは主にsystemdなどのサービスマネージャーを通じて制御されます。
sshdサービスの状態確認
sudo systemctl status sshd
sshdサービスの現在の状態を確認します。
sshdサービス再起動
sudo systemctl restart sshd
設定変更後、sshdサービスを再起動して変更を適用します。
sshdサービス有効化(起動時の自動開始)
sudo systemctl enable sshd
システム起動時にsshdサービスが自動的に開始されるように設定します。
sshd設定ファイルの有効性検証
sudo sshd -t
sshd_configファイルに構文エラーがないか確認します。
デバッグモードでsshd実行(テスト用)
sudo sshd -d -p 2222
デフォルトポートではない別のポート(例:2222)でデバッグモードでsshdを実行します。実際のサービスに影響を与えずにテストする場合に便利です。
インストール
sshdはOpenSSHサーバーパッケージの一部として提供されます。ほとんどのLinuxディストリビューションにはデフォルトでインストールされていますが、ない場合は以下のコマンドを使用してインストールできます。
Debian/Ubuntuベースのシステム
sudo apt update
sudo apt install openssh-server
CentOS/RHEL/Fedoraベースのシステム
sudo yum install openssh-server # または sudo dnf install openssh-server
ヒントと注意点
sshdはシステムのセキュリティにおいて非常に重要な役割を果たすため、設定時には以下の点に留意することをお勧めします。
セキュリティ強化のヒント
- **デフォルトポートの変更**: `Port 22`を他の任意の高いポート番号に変更して、ブルートフォース攻撃を減らします。
- **rootログインの無効化**: `PermitRootLogin no`に設定して、rootアカウントでの直接ログインを禁止します。
- **パスワード認証の無効化と公開鍵認証の使用**: `PasswordAuthentication no`に設定し、公開鍵認証(`PubkeyAuthentication yes`)を使用してセキュリティを強化します。
- **許可ユーザーの制限**: `AllowUsers`または`AllowGroups`オプションを使用して、SSH接続を許可するユーザーやグループを明示的に指定します。
- **ファイアウォール設定**: SSHポート(デフォルト22または変更されたポート)のみを外部からアクセス可能にするようにファイアウォール(ufw、firewalldなど)を設定します。
設定変更後のサービス再起動
`sshd_config`ファイルを編集した後、必ず`sudo systemctl restart sshd`コマンドを使用してサービスを再起動する必要があります。これにより変更が適用されます。
接続テスト
設定変更後は、必ず別のターミナルからSSH接続を試みて、変更が正しく適用されたか確認してください。既存のセッションを維持したままテストすることをお勧めします。