SSH公開鍵を登録して鍵認証で接続する
authorized_keysの追記、Linuxの権限、Windows管理者の登録先、鍵だけの認証への変更を説明します。
登録するのは公開鍵の1行だけです。秘密鍵は接続元に残します。既存の公開鍵を消さずに追記し、新しい鍵で別セッションの接続を確認してから認証設定を変更してください。
このページの内容
鍵と登録するユーザーを確認する
公開鍵はssh-ed25519やssh-rsaなどで始まる1行です。MAME TOOLSの「公開鍵をコピー」か.pubファイルの内容を使います。BEGIN OPENSSH PRIVATE KEYと書かれたファイルは登録しません。
作業する接続先ユーザーが正しいかwhoamiで確認してください。接続元に鍵があるだけでは登録されません。最初の接続経路がない場合は、クラウド作成時の公開鍵欄、管理コンソール、既存の管理者による登録を使います。
Linux・macOSで公開鍵を追記する
接続先で、実際にログインするユーザーとして実行します。既存のauthorized_keysはtouchで消えません。編集前に別名でバックアップし、エディターで公開鍵を新しい1行として追記します。画面上の折り返しは構いませんが、鍵の途中に改行を入れません。
whoami
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# エディターで公開鍵を追記
vi ~/.ssh/authorized_keysssh-copy-idが使える場合
接続元にssh-copy-idがあり、接続先Linuxへすでにパスワードなどでログインできる場合に使えます。公開鍵を-iで明示します。Windows標準OpenSSHにはこのコマンドが付属しないため、上のコンソールで追記する方法か管理者による登録を使います。
ssh-copy-id -i ~/.ssh/id_ed25519_mame_tools.pub -p 22 user@host.exampleWindowsの登録先を確認する
通常ユーザーはC:/Users/対象ユーザー/.ssh/authorized_keysへ登録します。UTF-8のテキストとして保存し、.txtを付けないでください。設定ファイルのAuthorizedKeysFileを変更している環境では実際の指定を優先します。
既定設定でAdministratorsに所属するユーザーはC:/ProgramData/ssh/administrators_authorized_keysを使います。管理者グループ用の共有ファイルなので、個別ユーザー用の鍵置き場とは性質が違います。必要なら非管理者アカウントと権限昇格の運用を検討します。
エディターで公開鍵を1行追記して保存した後、次のACL設定を確認します。継承を外し、AdministratorsとSYSTEMを許可する例です。ほかの明示的な許可は自動削除されないため、表示結果に残っていないか確認してください。
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ラベル、認証ポリシーを確認してください。既存の管理接続は閉じません。
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だけでは対話式認証が残る構成があります。
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no構文・Match条件・別セッションを確認する
以下のuser、host.example、203.0.113.10は確認対象のユーザー・接続元ホスト名・接続元IPへ置き換えます。203.0.113.10は説明用アドレスです。実効値とMatch条件を確認してから、OS別ガイドの反映方法を使います。
新規接続が失敗したら、残してある接続か管理コンソールで変更したファイルを元に戻します。元の構文確認と再読み込みに成功し、別の接続が復旧したことを確認してください。
sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T -C user=user,host=host.example,addr=203.0.113.10鍵を交換・廃止する
新しい公開鍵を追記して新規接続を確認し、その後で古い公開鍵の行だけを削除します。鍵を失った場合は管理コンソールや別の管理者から該当する公開鍵を削除します。接続元の秘密鍵ファイルを削除しただけでは、サーバー側の登録は解除されません。
参照した公式資料
- OpenSSH:ssh-keygen
- OpenSSH:サーバー設定
- Microsoft:Windowsの公開鍵認証とACL
- Microsoft:WindowsのOpenSSH設定
- Red Hat:RHEL 9のOpenSSH設定
- Debian:sshd_config
資料確認日:2026年9月12日。公式資料と一般的な確認手順をもとに作成しています。すべてのOS・ルーター・ゲームの組み合わせを実機検証したものではありません。