SSH公開鍵を登録して鍵認証で接続する

authorized_keysの追記、Linuxの権限、Windows管理者の登録先、鍵だけの認証への変更を説明します。

対象OpenSSHの通常ユーザー鍵。Linux・macOS・Windows。SSH証明書・集中管理・多要素認証は組織の設定を優先。
最初に確認すること

登録するのは公開鍵の1行だけです。秘密鍵は接続元に残します。既存の公開鍵を消さずに追記し、新しい鍵で別セッションの接続を確認してから認証設定を変更してください。

このページの内容
  1. 鍵と登録するユーザーを確認する
  2. Linux・macOSで公開鍵を追記する
  3. ssh-copy-idが使える場合
  4. Windowsの登録先を確認する
  5. パスワードへフォールバックせず鍵で試す
  6. 鍵だけで認証する設定へ変更する場合
  7. 構文・Match条件・別セッションを確認する
  8. 鍵を交換・廃止する

鍵と登録するユーザーを確認する

公開鍵はssh-ed25519やssh-rsaなどで始まる1行です。MAME TOOLSの「公開鍵をコピー」か.pubファイルの内容を使います。BEGIN OPENSSH PRIVATE KEYと書かれたファイルは登録しません。

作業する接続先ユーザーが正しいかwhoamiで確認してください。接続元に鍵があるだけでは登録されません。最初の接続経路がない場合は、クラウド作成時の公開鍵欄、管理コンソール、既存の管理者による登録を使います。

SSH鍵を生成する

Linux・macOSで公開鍵を追記する

接続先で、実際にログインするユーザーとして実行します。既存のauthorized_keysはtouchで消えません。編集前に別名でバックアップし、エディターで公開鍵を新しい1行として追記します。画面上の折り返しは構いませんが、鍵の途中に改行を入れません。

接続先・Linux / macOS(対象ユーザー)
whoami
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# エディターで公開鍵を追記
vi ~/.ssh/authorized_keys

ssh-copy-idが使える場合

接続元にssh-copy-idがあり、接続先Linuxへすでにパスワードなどでログインできる場合に使えます。公開鍵を-iで明示します。Windows標準OpenSSHにはこのコマンドが付属しないため、上のコンソールで追記する方法か管理者による登録を使います。

接続元・ssh-copy-idがあるLinux等
ssh-copy-id -i ~/.ssh/id_ed25519_mame_tools.pub -p 22 user@host.example

Windowsの登録先を確認する

通常ユーザーはC:/Users/対象ユーザー/.ssh/authorized_keysへ登録します。UTF-8のテキストとして保存し、.txtを付けないでください。設定ファイルのAuthorizedKeysFileを変更している環境では実際の指定を優先します。

既定設定でAdministratorsに所属するユーザーはC:/ProgramData/ssh/administrators_authorized_keysを使います。管理者グループ用の共有ファイルなので、個別ユーザー用の鍵置き場とは性質が違います。必要なら非管理者アカウントと権限昇格の運用を検討します。

エディターで公開鍵を1行追記して保存した後、次のACL設定を確認します。継承を外し、AdministratorsとSYSTEMを許可する例です。ほかの明示的な許可は自動削除されないため、表示結果に残っていないか確認してください。

接続先・PowerShell(管理者、ファイルを作成・追記した後)
icacls "$env:ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant:r "*S-1-5-32-544:F" "*S-1-5-18:F"
icacls "$env:ProgramData\ssh\administrators_authorized_keys"

パスワードへフォールバックせず鍵で試す

接続元から指定した鍵だけで認証を試します。Windowsでは-iのパスを実際の保存先へ変更します。パスフレーズ付き秘密鍵の解除入力は、この確認でも必要な場合があります。

成功したらwhoamiとhostnameを確認します。失敗する場合は公開鍵の登録先、ユーザー、権限、SELinuxラベル、認証ポリシーを確認してください。既存の管理接続は閉じません。

接続元・OpenSSH
ssh -o IdentitiesOnly=yes -o PreferredAuthentications=publickey -o PasswordAuthentication=no -i ~/.ssh/id_ed25519_mame_tools -p 22 user@host.example

鍵だけで認証する設定へ変更する場合

この節は鍵認証だけでの接続が成功し、別の管理経路がある場合に進めます。Linuxの例です。組織のMFAでkeyboard-interactiveを使う場合、この設定は適用しません。

変更対象のsshd_configまたはInclude先をバックアップし、下の項目の実効値をそろえます。ファイルを新しく追加する場合は、既存のInclude位置と読み込み順を確認してください。PasswordAuthenticationだけでは対話式認証が残る構成があります。

接続先・Linuxのsshd設定例(シェルへ実行しない)
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

構文・Match条件・別セッションを確認する

以下のuser、host.example、203.0.113.10は確認対象のユーザー・接続元ホスト名・接続元IPへ置き換えます。203.0.113.10は説明用アドレスです。実効値とMatch条件を確認してから、OS別ガイドの反映方法を使います。

新規接続が失敗したら、残してある接続か管理コンソールで変更したファイルを元に戻します。元の構文確認と再読み込みに成功し、別の接続が復旧したことを確認してください。

接続先・Linux
sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T -C user=user,host=host.example,addr=203.0.113.10
Ubuntu・Debianで反映するRHEL・Fedoraで反映するWindowsの設定変更

鍵を交換・廃止する

新しい公開鍵を追記して新規接続を確認し、その後で古い公開鍵の行だけを削除します。鍵を失った場合は管理コンソールや別の管理者から該当する公開鍵を削除します。接続元の秘密鍵ファイルを削除しただけでは、サーバー側の登録は解除されません。

参照した公式資料

資料確認日:2026年9月12日。公式資料と一般的な確認手順をもとに作成しています。すべてのOS・ルーター・ゲームの組み合わせを実機検証したものではありません。