MacにはSSHクライアントが標準搭載されているため、追加アプリなしでサーバーへ接続できます。基本コマンドは「ssh ユーザー名@ホスト名」です。初回接続時は、ホスト鍵のフィンガープリントを確認してから接続しましょう。
SSH接続に必要な情報
| 項目 | 例 | 確認先 |
|---|---|---|
| ホスト名またはIPアドレス | server.example.com | サーバー管理者・契約サービス |
| ユーザー名 | user1 | サーバー管理者・契約サービス |
| ポート番号 | 22 | 標準は22。変更されている場合あり |
| 認証方法 | パスワードまたは秘密鍵 | サーバー側の設定 |
| ホスト鍵のフィンガープリント | SHA256:… | 管理画面や管理者から安全な方法で入手 |
この記事のホスト名、ユーザー名、ファイル名は例です。実際の接続情報へ置き換えてください。パスワードや秘密鍵を記事、メール、チャットへ不用意に貼り付けないようにします。
ターミナルを開く
- 「command」キーとスペースキーを押してSpotlightを開きます。
- 「ターミナル」と入力します。
- 表示された「ターミナル」を開きます。
Finderの「アプリケーション」→「ユーティリティ」→「ターミナル」から開くこともできます。
パスワード認証で接続する
標準ポート22を使う場合は、次の形式で入力します。
ssh user1@server.example.com
ポート番号が22以外の場合は、小文字の「-p」に続けて番号を指定します。次は10022番ポートの例です。
ssh -p 10022 user1@server.example.com
「password:」と表示されたら、接続先サーバーのパスワードを入力してReturnキーを押します。入力中は文字も記号も表示されませんが、正常な動作です。
初回接続時はホスト鍵を確認する
初めて接続するサーバーでは、接続を続けるか確認するメッセージと、ホスト鍵のフィンガープリントが表示されます。サーバー管理画面や管理者から案内された値と一致することを確認し、一致した場合だけ「yes」と入力します。
確認せずに「yes」と入力すると、別のサーバーへ接続してしまう危険があります。フィンガープリントが分からない場合は、サーバー管理者へ確認してください。
公開鍵認証で接続する
インターネット経由のSSHでは、一般にパスワード認証より公開鍵認証が推奨されます。Mac側で秘密鍵を保管し、対応する公開鍵だけをサーバーへ登録します。
鍵を新しく作成する
ssh-keygen -t ed25519 -C "mac-ssh-key"
保存先を変更しない場合は、案内に従ってReturnキーを押します。秘密鍵を守るため、推測されにくいパスフレーズを設定してください。
~/.ssh/id_ed25519:秘密鍵。サーバーや他人へ渡さない~/.ssh/id_ed25519.pub:公開鍵。接続先サーバーへ登録する
公開鍵の登録方法はサーバーによって異なります。レンタルサーバーの管理画面を使うか、サーバー管理者へ登録を依頼してください。
秘密鍵を指定して接続する
ssh -i ~/.ssh/id_ed25519 user1@server.example.com
ポートも指定する場合は、次のように組み合わせます。
ssh -p 10022 -i ~/.ssh/id_ed25519 user1@server.example.com
秘密鍵の権限が広すぎるとSSHが拒否する場合があります。その場合は、鍵の保存場所を確認してから次を実行します。
chmod 600 ~/.ssh/id_ed25519
接続設定を保存する
頻繁に接続する場合は、~/.ssh/configへ設定すると短い名前で接続できます。
Host myserver
HostName server.example.com
User user1
Port 10022
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
保存後は次のコマンドで接続できます。
ssh myserver
設定ファイルにはパスワードや秘密鍵の内容を書きません。複数の接続先がある場合は、Hostごとに設定を分けます。
SSH接続を終了する
接続先で作業が終わったら、次を入力します。
exit
接続先のシェルが終了し、Macのターミナルへ戻れば切断完了です。
接続できないとき
| 表示例 | 主な確認項目 |
|---|---|
| Connection timed out | ホスト名、ポート、ネットワーク、VPN、ファイアウォール |
| Connection refused | SSHサービスが起動しているか、ポート番号が正しいか |
| Permission denied | ユーザー名、パスワード、公開鍵、秘密鍵の指定 |
| REMOTE HOST IDENTIFICATION HAS CHANGED | サーバー交換か攻撃の可能性。管理者へフィンガープリントを確認する |
| UNPROTECTED PRIVATE KEY FILE | 秘密鍵のファイル権限を確認する |
接続先のホスト鍵が変わったという警告が出た場合、確認せずに登録情報を削除して接続し直してはいけません。サーバーの再構築や鍵変更が本当に行われたか、管理者へ確認してください。
安全に利用するための注意
- 可能ならパスフレーズ付きの公開鍵認証を使う
- 秘密鍵をクラウド共有やメールで送らない
- 接続先ごとに必要な権限だけを持つユーザーを使う
- rootでの直接ログインを避ける
- macOSと接続先のSSHソフトウェアを更新する
- 不要なSSH公開を避け、VPNや接続元制限を検討する
- 秘密鍵を紛失した場合は、すぐにサーバー側から該当する公開鍵を削除する
まとめ
標準ポートなら「ssh ユーザー名@ホスト名」、別ポートなら「ssh -p ポート番号 ユーザー名@ホスト名」で接続します。初回はホスト鍵を確認し、継続利用するサーバーでは公開鍵認証とSSH設定ファイルを使うと、安全性と利便性を高められます。
