本文へ移動
Mac

MacからSSH接続する方法|パスワード・秘密鍵認証

Macでパスワード認証のSSHへターミナルからログインする方法

MacにはSSHクライアントが標準搭載されているため、追加アプリなしでサーバーへ接続できます。基本コマンドは「ssh ユーザー名@ホスト名」です。初回接続時は、ホスト鍵のフィンガープリントを確認してから接続しましょう。

SSH接続に必要な情報

項目例確認先
ホスト名またはIPアドレスserver.example.comサーバー管理者・契約サービス
ユーザー名user1サーバー管理者・契約サービス
ポート番号22標準は22。変更されている場合あり
認証方法パスワードまたは秘密鍵サーバー側の設定
ホスト鍵のフィンガープリントSHA256:…管理画面や管理者から安全な方法で入手

この記事のホスト名、ユーザー名、ファイル名は例です。実際の接続情報へ置き換えてください。パスワードや秘密鍵を記事、メール、チャットへ不用意に貼り付けないようにします。

ターミナルを開く

  1. 「command」キーとスペースキーを押してSpotlightを開きます。
  2. 「ターミナル」と入力します。
  3. 表示された「ターミナル」を開きます。

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 refusedSSHサービスが起動しているか、ポート番号が正しいか
Permission deniedユーザー名、パスワード、公開鍵、秘密鍵の指定
REMOTE HOST IDENTIFICATION HAS CHANGEDサーバー交換か攻撃の可能性。管理者へフィンガープリントを確認する
UNPROTECTED PRIVATE KEY FILE秘密鍵のファイル権限を確認する

接続先のホスト鍵が変わったという警告が出た場合、確認せずに登録情報を削除して接続し直してはいけません。サーバーの再構築や鍵変更が本当に行われたか、管理者へ確認してください。

安全に利用するための注意

  • 可能ならパスフレーズ付きの公開鍵認証を使う
  • 秘密鍵をクラウド共有やメールで送らない
  • 接続先ごとに必要な権限だけを持つユーザーを使う
  • rootでの直接ログインを避ける
  • macOSと接続先のSSHソフトウェアを更新する
  • 不要なSSH公開を避け、VPNや接続元制限を検討する
  • 秘密鍵を紛失した場合は、すぐにサーバー側から該当する公開鍵を削除する

まとめ

標準ポートなら「ssh ユーザー名@ホスト名」、別ポートなら「ssh -p ポート番号 ユーザー名@ホスト名」で接続します。初回はホスト鍵を確認し、継続利用するサーバーでは公開鍵認証とSSH設定ファイルを使うと、安全性と利便性を高められます。

公式情報