Secure Shell (SSH) は、システム管理者、開発者、リモートサーバーを管理するすべての人にとって不可欠なツールです。SSH リモートアクセスを使用すると、リモートマシンに安全に接続し、コマンドを実行し、ファイルを転送し、管理タスクを実行できます。この記事では、今日使用すべき10の一般的なSSHコマンドを探ります。

1. リモートサーバーへの接続

最も基本的なSSHコマンドは、リモートサーバーに接続するために使用されます:

ssh user@remote_host

userをあなたのユーザー名に、remote_hostをサーバーのIPアドレスまたはドメイン名に置き換えます。

2. 特定のポートでの接続

デフォルトでは、SSHはポート22を使用しますが、必要に応じて異なるポートを指定できます:

ssh -p 2222 user@remote_host

これは、SSHサーバーが非標準ポートで実行されるように構成されている場合に便利です。

3. 認証のためのSSHキーの使用

パスワードの代わりに、SSHキーで認証できます:

ssh -i /path/to/private_key user@remote_host

SSHキーを生成するには:

ssh-keygen -t rsa -b 4096

これによりセキュリティが向上し、毎回パスワードを入力する必要がなくなります。

4. リモートサーバーでのコマンド実行

インタラクティブセッションを開かずに、リモートサーバーで単一のコマンドを実行できます:

ssh user@remote_host "ls -l /var/www/html"

これは迅速な管理タスクに便利です。

5. SCPを使用したファイルのコピー

Secure Copy Protocol (SCP)を使用すると、ローカルとリモートのマシン間でファイルを転送できます:

scp file.txt user@remote_host:/remote/directory/

ディレクトリを再帰的にコピーするには:

scp -r /local/directory user@remote_host:/remote/directory/

6. rsyncを使用したファイルのコピー

SCPの代替として、rsyncがあり、ファイルの同期により効率的です:

rsync -avz /local/directory user@remote_host:/remote/directory

これは、ファイル間の差分のみを送信することでデータ転送を最小限に抑えます。

7. SSHトンネリングの設定

SSHトンネリングを使用すると、ネットワークトラフィックを安全に転送できます。ローカルトンネルを作成するには:

ssh -L 8080:localhost:80 user@remote_host

これにより、ローカルポート8080からリモートサーバーのポート80にトラフィックが転送されます。

8. リバースSSHトンネリング

リバーストンネリングを使用すると、リモートサーバーがローカルマシンにアクセスできます:

ssh -R 9090:localhost:22 user@remote_host

これは、ファイアウォールの背後にあるシステムにアクセスする際に便利です。

9. SSH接続のマルチプレクシング

同じサーバーに頻繁に接続する場合、マルチプレクシングを有効にすることでSSHを高速化できます:

ssh -o ControlMaster=yes -o ControlPath=~/.ssh/socket user@remote_host

これにより、複数のSSHセッションの認証オーバーヘッドが削減されます。

10. SSHセッションの終了

SSHセッションを閉じるには、単に次のように入力します:

exit

または、エスケープシーケンスを使用します:

~.

これは、接続が応答しなくなったときに役立ちます。