SSHはリモートサーバーへ安全に接続するための必須ツールです。エンジニアならば日常的に使うコマンドですが、初めて触れる方には少し難しく感じるかもしれません。この記事ではSSH(Secure Shell)の基本的な使い方を、接続コマンドから鍵認証の設定まで、丁寧に解説します。
SSHとは?
SSH(Secure Shell)は、ネットワーク越しにリモートサーバーを安全に操作するための暗号化プロトコルです。Webサーバーの管理・ファイル転送・コマンド実行など、あらゆるサーバー作業の基盤となります。従来のTelnetやFTPと違い、通信が暗号化されているため、パスワードや操作内容が傍受されません。
SSHコマンド早見表
| 操作 | コマンド |
|---|---|
| 基本接続 | ssh ユーザー名@ホスト名 |
| ポート指定 | ssh -p 8022 ユーザー名@ホスト名 |
| 秘密鍵指定 | ssh -i ~/.ssh/id_rsa ユーザー名@ホスト名 |
| 鍵ペア生成 | ssh-keygen -t ed25519 |
| 公開鍵をサーバーに登録 | ssh-copy-id ユーザー名@ホスト名 |
| ファイル転送(SCP) | scp ファイル名 ユーザー名@ホスト名:/転送先パス |
| 接続を終了 | exit または Ctrl+D |
SSHの基本的な使い方
1. 基本の接続コマンド
最もシンプルなSSH接続コマンドは以下のとおりです。
ssh ユーザー名@接続先ホスト名(またはIPアドレス)
例えば、ユーザー名がtaroでIPアドレスが192.168.1.100のサーバーに接続する場合:
ssh taro@192.168.1.100
ポートが22番以外(例: 8022)の場合は-pオプションで指定します:
ssh -p 8022 taro@192.168.1.100
2. SSH鍵認証の設定手順
パスワード認証よりも安全で便利な公開鍵認証の設定方法を紹介します。
- 鍵ペアを生成する:
ssh-keygen -t ed25519を実行。保存先とパスフレーズを設定します。~/.ssh/id_ed25519(秘密鍵)と~/.ssh/id_ed25519.pub(公開鍵)が生成されます。 - 公開鍵をサーバーに登録する:
ssh-copy-id ユーザー名@ホスト名を実行すると、公開鍵がサーバーの~/.ssh/authorized_keysに自動登録されます。 - 鍵認証で接続確認:
ssh -i ~/.ssh/id_ed25519 ユーザー名@ホスト名でパスワードなしで接続できれば成功です。 - パスワード認証を無効化(推奨):サーバーの
/etc/ssh/sshd_configでPasswordAuthentication noに設定し、SSHサービスを再起動します。
3. ~/.ssh/config でSSH接続を簡略化
毎回長いオプションを入力するのが面倒な場合は、~/.ssh/configファイルに接続設定を書いておくと便利です。
Host myserver
HostName 192.168.1.100
User taro
Port 8022
IdentityFile ~/.ssh/id_ed25519
上記を設定しておくと、以下のコマンドだけで接続できるようになります:
ssh myserver
4. SCPでファイルを安全に転送する
SSH経由でファイルを転送するにはscpコマンドを使います。
# ローカル → サーバーへ転送
scp /local/file.txt taro@192.168.1.100:/remote/path/
# サーバー → ローカルへ取得
scp taro@192.168.1.100:/remote/file.txt /local/path/
SSH運用のポイント
- 秘密鍵は厳重に管理:秘密鍵(
id_ed25519など)が漏洩すると不正アクセスの原因になります。絶対に公開・共有しないこと。 - パスフレーズを設定する:万が一秘密鍵が盗まれても、パスフレーズがあればすぐには悪用されません。
- 鍵の種類はEd25519を推奨:RSA(
-t rsa)より安全で高速なed25519アルゴリズムの利用を推奨します。 - デフォルトポートの変更を検討:22番ポートは攻撃対象になりやすいため、変更することでセキュリティが向上します。
- SSHエージェントを活用:
ssh-addコマンドでセッション中のパスフレーズ入力を一度で済ませられます。
まとめ
SSHはエンジニアにとって必須のツールです。基本の接続コマンドをマスターし、鍵認証と~/.ssh/configを設定すれば、日々のサーバー管理が格段に効率化します。セキュリティ意識を持って運用し、安全で快適なリモート作業環境を手に入れましょう。
