ssh-keygen:SSH 鍵の作成と公開鍵の登録、ssh-copy-id の使い方
ssh-keygen は、SSH 接続に使う秘密鍵と公開鍵のペアを作り、フィンガープリントの確認やパスフレーズの変更、known_hosts の整理まで受け持つ OpenSSH のコマンドです。AlmaLinux 9 サーバーで ed25519 鍵と rsa 鍵を作ってフィンガープリントを確認し、パスフレーズとコメントを変えたあと ssh-copy-id の dry-run で確かめたところ、サーバーへ渡るのは .pub ファイルの公開鍵 1 行だけでした。
下の出力のアカウント名と鍵ファイルのパスは例の値で、フィンガープリントと公開鍵、randomart は記事を書きながら作って消した鍵の値です。サーバーに公開鍵を実際に登録するコマンドは、コマンドだけ載せて実行していません。
1️⃣ ssh-keygen の鍵作成:-t ed25519 と -C コメント
鍵は ssh-keygen -t 種類 -C コメント の形で作ります。-t は鍵の種類、-C は公開鍵の末尾に付くコメントで、メールアドレスや用途を書きます。下は保存するファイルを -f で指定し、パスフレーズの質問 2 回にそのまま Enter を押したときの全出力です。
ssh-keygen -t ed25519 -C "user@example.com" -f ~/.ssh/id_ed25519Generating public/private ed25519 key pair.
Enter passphrase for "/home/user/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com
The key's randomart image is:
+--[ED25519 256]--+
| |
| . |
| o o |
| = o . |
| = Soo . |
| = *+*.. . |
| o.B.o++ . |
| .=o*Eo.+ |
| o+=@OO= |
+----[SHA256]-----+パスフレーズの質問で Enter だけ押すと、パスフレーズなしの鍵になります。-f を省くと、パスフレーズの質問の前に保存先を尋ねる行が先に出ます。かっこの中に既定のパスであるホームフォルダー下の .ssh/id_ed25519 が書かれていて、ここでも Enter だけ押すとそのパスに保存されます。
出力の最後の randomart は、フィンガープリントを絵にしたものです。鍵を作ったときと -lv で確認し直したときで同じ絵が出ました。
ls -l ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub-rw------- 1 user user 411 Oct 29 08:22 /home/user/.ssh/id_ed25519
-rw-r--r-- 1 user user 98 Oct 29 08:22 /home/user/.ssh/id_ed25519.pub秘密鍵は 600、公開鍵は 644 の権限で作られました。秘密鍵は自分のコンピューターにだけ置き、外へ送りません。
cat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.com公開鍵は、鍵の種類、鍵の値、コメントが空白でつながった 1 行です。この 1 行が接続先サーバーの authorized_keys に入ります。フォルダー内のファイルの役割はツリーにまとめました。
2️⃣ ssh-keygen のオプション:-f、-N、-b、-q
質問に答えながら作る方法は手で打つときは楽ですが、スクリプトでは質問そのものをなくす必要があります。-f でファイルを決め、-N でパスフレーズを渡すと、質問なしですぐ作られます。
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N "" -C "deploy@example.com"Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/deploy_key
Your public key has been saved in /home/user/.ssh/deploy_key.pub
The key fingerprint is:
SHA256:Rhk2/tgn59K8jtvDWJTOLiYnToM8t4gkdaMfu6TJ0oM deploy@example.com
The key's randomart image is:
+--[ED25519 256]--+
| + |
| o + |
| + . |
| . + o |
| . o S ++o |
| . + + B+ |
| .oo * + .=+ |
| E+o* Boo=++. |
| .=.=oo=o++. |
+----[SHA256]-----+-N の後ろに空の引用符を渡すとパスフレーズなしの鍵になり、質問なしで保存先とフィンガープリントまで一度に出ました。
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N ""Generating public/private ed25519 key pair.
/home/user/.ssh/deploy_key already exists.
Overwrite (y/n)?同じ名前でもう一度実行すると、already exists のあとに上書きするか尋ねます。n を押すと何も変えずに終了コード 1 で終わりました。運用中の鍵をうっかり上書きしないよう、新しい鍵は別の名前で作ります。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -C "user@example.com"Generating public/private rsa key pair.
Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:f+uwCSQjMka1BEHzXADwIWbrlbVRiP6Z4tjnwNwPVAA user@example.com
The key's randomart image is:
+---[RSA 4096]----+
|o=BE*=+. |
|oo.Oo++ |
| .+o+. . |
|.... . |
| .+ o.= S |
| .o+o= + . |
| ++.o . o . |
| . o..o . = . |
| o. . o.o |
+----[SHA256]-----+rsa は -b で長さを決めます。マニュアルでは既定値が 3072 ビットで、上では 4096 ビットで作ったので randomart の見出しに RSA 4096 と出ました。ed25519 は長さが決まっているため -b を付けても無視されるとマニュアルに書かれています。
ssh-keygen -f ~/.ssh/default_key -N "" -C "user@example.com"Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/default_key
Your public key has been saved in /home/user/.ssh/default_key.pub
The key fingerprint is:
SHA256:mwy02fpKxjxEVvLC2EUJeaMIiNFOVS0GwWVjN9v0j4c user@example.com
The key's randomart image is:
+--[ED25519 256]--+
|o+ o+=O=*.. |
|o + .*+B== . |
| o ..oB+o.. . |
| . .+.= + |
| = S E o |
| + + o . |
| B + |
| o o |
| ... |
+----[SHA256]-----+-t を省くと ed25519 鍵が作られました。
ssh-keygen -q -t ed25519 -f ~/.ssh/backup_key -N "" -C "backup@example.com"; echo rc=$?rc=0-q を付けると、フィンガープリントと randomart まですべて隠れ、終了コードだけが残ります。複数のサーバー用の鍵をスクリプトで作るときに使います。
📌 主なオプション: この記事で実行した結果
| オプション | 作業 | この記事で確認した結果 | |
|---|---|---|---|
| -t 種類 | 作る鍵の種類 | 出力の 1 行目に ed25519、rsa などの種類が出て、省くと ed25519 | |
| -C コメント | 公開鍵の末尾に付くコメント | cat で見た公開鍵の末尾に user@example.com | |
| -f ファイル | 鍵ファイルのパス | /home/user/.ssh/deploy_key に保存したという行、同じ名前で再実行すると already exists と Overwrite (y/n)? | |
| -N パスフレーズ | 新しいパスフレーズ(passphrase)、空の引用符ならパスフレーズなし | パスフレーズの質問なしで保存先とフィンガープリントまで一度に | |
| -b ビット | 鍵の長さ | rsa に 4096 を渡すと randomart の見出しに RSA 4096 | |
| -q | 出力をすべて隠す | echo で出した rc=0 の 1 行だけが残る | |
| -l | 鍵ファイルのフィンガープリントを出力 | 公開鍵と秘密鍵から同じ SHA256 フィンガープリント、authorized_keys は鍵ごとに 1 行 | |
| -E ハッシュ | フィンガープリントのハッシュの種類を指定 | -E md5 で MD5:00:7b:02:5e から始まるフィンガープリント | |
| -v | -l と一緒に付けると randomart まで出力 | 鍵を作ったときと同じ randomart | |
| -y | 秘密鍵から公開鍵を取り出して出力 | .pub ファイルと文字まで同じ公開鍵 1 行 | |
| -p | 秘密鍵のパスフレーズを変える | 新しいパスフレーズで保存したという行が出て、秘密鍵が 411 バイトから 464 バイトに | |
| -P パスフレーズ | 古いパスフレーズ(今かかっているもの) | 正しいパスフレーズなら公開鍵、間違ったパスフレーズなら incorrect passphrase supplied to decrypt private key | |
| -c | コメントを変える、新しいコメントは -C で | Old comment: user@example.com と Comment 'user@laptop' applied | |
| -F ホスト | known_hosts でそのホストの行を探す | # Host 192.0.2.10 found: line 1 とその行 | |
| -R ホスト | known_hosts からそのホストの行を消す | known_hosts updated と元のファイル known_hosts.old、ないホストは not found | |
| -H | known_hosts のホスト名とアドレスをハッシュに | |1| で始まる行に変わり、.old ファイルにハッシュ前の行が残るという WARNING |
📎 その他のオプション: 公式マニュアルより
| オプション | 作業 | |
|---|---|---|
| -a 回数 | 秘密鍵を保存するときの KDF(bcrypt_pbkdf)の繰り返し回数、大きいほどパスフレーズの確認が遅くなり総当たりに強くなる、既定 16 | |
| -A | ないホスト鍵を既定の種類(rsa、ecdsa、ed25519)ごとに既定のパスに作る | |
| -B | 鍵ファイルの bubblebabble ダイジェストを出力 | |
| -e | OpenSSH 鍵を -m 形式(既定 RFC4716)に変えて出力、ほかの SSH プログラム用 | |
| -i | -m 形式(既定 RFC4716)のパスフレーズなしの鍵を OpenSSH 形式に変えて出力 | |
| -m 形式 | 鍵の形式を指定(RFC4716、PKCS8、PEM)、-p と一緒に OpenSSH と PEM の秘密鍵形式を相互に変換 | |
| -r ホスト | 公開鍵からそのホスト名の SSHFP DNS レコードを出力 | |
| -s CA 鍵 | CA 鍵で公開鍵に署名して証明書を作る | |
| -L | 証明書の内容を出力 | |
| -K | FIDO 認証デバイスに保存された resident 鍵を今のフォルダーにダウンロード | |
| -Y sign | SSH 鍵でファイルに署名、署名はファイル名の末尾に .sig を付けて保存、用途名は -n で |
3️⃣ ssh-keygen -l でフィンガープリント確認と -y で公開鍵の取り出し
鍵ファイルが複数あると、どの公開鍵がどの秘密鍵の対なのかファイル名だけではわかりにくくなります。フィンガープリントは秘密鍵と公開鍵で同じ値になるので、-l で 2 つのファイルのフィンガープリントを比べれば対を確認できます。
ssh-keygen -l -f ~/.ssh/id_ed25519.pub256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)ssh-keygen -l -f ~/.ssh/id_ed25519256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)公開鍵ファイルと秘密鍵ファイルから同じ SHA256 フィンガープリントが出ました。先頭の 256 は鍵の長さで、末尾のかっこは鍵の種類です。
ssh-keygen -l -E md5 -f ~/.ssh/id_ed25519.pub256 MD5:00:7b:02:5e:b8:ba:85:0c:32:d7:15:7e:72:45:f7:bc user@example.com (ED25519)-E md5 を付けると、以前の形式である MD5 フィンガープリントに変わります。古いサーバーや管理画面が MD5 フィンガープリントを表示するときの照合用に使います。
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub256 SHA256:c73KJh85pPijvy43kS1uaQo77fSsGlE4Wz+aMF+sTy8 user@example.com (ED25519)
+--[ED25519 256]--+
| |
| . |
| o o |
| = o . |
| = Soo . |
| = *+*.. . |
| o.B.o++ . |
| .=o*Eo.+ |
| o+=@OO= |
+----[SHA256]-----+-v を一緒に付けると randomart がもう一度出ます。鍵を作ったときに出力された絵と同じ絵でした。
ssh-keygen -l -f ~/.ssh/authorized_keys256 SHA256:Rhk2/tgn59K8jtvDWJTOLiYnToM8t4gkdaMfu6TJ0oM deploy@example.com (ED25519)authorized_keys のように公開鍵が複数行あるファイルを渡すと、行ごとにフィンガープリントが 1 行ずつ出ます。サーバーにどの鍵が登録されているか確認するときはこの方法で見ます。
ssh-keygen -y -f ~/.ssh/id_ed25519ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.com-y は秘密鍵から公開鍵をもう一度取り出します。.pub ファイルを消したときや、別のコンピューターに秘密鍵だけ移したときは、この出力をファイルに保存すれば済みます。出力は元の .pub ファイルと文字まで同じでした。
4️⃣ ssh-keygen -p でパスフレーズ変更と -c でコメント変更
秘密鍵にパスフレーズ(passphrase)をかけると、ファイルが漏れてもパスフレーズなしでは使えません。その代わり接続のたびにパスフレーズを打つ必要があるので、人が手で接続する鍵には向き、cron のように自動で動くスクリプトの鍵には向きません。
ssh-keygen -p -f ~/.ssh/id_ed25519 -P "" -N "example-pass"Key has comment 'user@example.com'
Your identification has been saved with the new passphrase.-P が古いパスフレーズ、-N が新しいパスフレーズです。パスフレーズのない鍵だったので -P に空の引用符を渡し、新しいパスフレーズで保存し直したという 2 行が出ました。オプションなしで -p だけを付けると、古いパスフレーズと新しいパスフレーズを順に尋ねるとマニュアルに書かれています。
ls -l ~/.ssh/id_ed25519-rw------- 1 user user 464 Oct 29 08:22 /home/user/.ssh/id_ed25519パスフレーズをかけたあと、秘密鍵ファイルが 411 バイトから 464 バイトに大きくなりました。
ssh-keygen -y -f ~/.ssh/id_ed25519 -P "example-pass"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@example.comssh-keygen -y -f ~/.ssh/id_ed25519 -P "wrongpass"Load key "/home/user/.ssh/id_ed25519": incorrect passphrase supplied to decrypt private keyパスフレーズのかかった鍵は、-y でも -P でパスフレーズを渡す必要があります。正しいパスフレーズでは前と同じ公開鍵が出て、間違ったパスフレーズを渡すと incorrect passphrase エラーで終わりました。マニュアルは失くしたパスフレーズを取り戻す方法はないとしているので、パスフレーズを忘れたら新しい鍵を作って公開鍵を登録し直します。
ssh-keygen -c -C "user@laptop" -f ~/.ssh/id_ed25519 -P "example-pass"Old comment: user@example.com
Comment 'user@laptop' appliedcat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVLiw04ugfXq15n2m8ZDW0OywkRoug8beXw/9VnVY/L user@laptop-c はコメントを変えます。古いコメントと新しいコメントが 1 行ずつ出て、公開鍵ファイル末尾のコメントも user@laptop に変わりました。コメントは鍵を見分ける目印なので、鍵の値そのものは変わりませんでした。
ssh-keygen -p -f ~/.ssh/id_ed25519 -P "example-pass" -N ""Key has comment 'user@laptop'
Your identification has been saved with the new passphrase.パスフレーズを外すには -N に空の引用符を渡します。同じ 2 行が出て、そのあとは -P なしで -y が再び実行できました。
5️⃣ ssh-keygen -R で known_hosts のホスト鍵を削除
known_hosts には接続したサーバーのホスト鍵が 1 行ずつたまります。サーバーを入れ直してホスト鍵が変わると、ssh は保存された鍵と違うとして接続を拒みますが、このとき古い行を消すオプションが -R です。下の known_hosts は例のアドレス 3 行で作ったファイルで、-f でそのファイルを指定しました。
cat ~/.ssh/known_hosts192.0.2.10 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk
server2.example.com,192.0.2.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
[192.0.2.30]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC0WmcBD2HIsiSn+tERrbeFIyExAodSEUhE9j5WMpkRW各行はホスト名またはアドレス、鍵の種類、鍵の値の順です。カンマでつないだ 2 行目は名前とアドレスが同じサーバーのもので、3 行目の角かっことコロンは 22 番以外のポートです。
ssh-keygen -F 192.0.2.10 -f ~/.ssh/known_hosts# Host 192.0.2.10 found: line 1
192.0.2.10 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk-F はそのホストの行を何行目かとあわせて出力します。ないホストは何も出力せず、終了コード 1 で終わりました。
ssh-keygen -R 192.0.2.10 -f ~/.ssh/known_hosts# Host 192.0.2.10 found: line 1
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldcat ~/.ssh/known_hostsserver2.example.com,192.0.2.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
[192.0.2.30]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC0WmcBD2HIsiSn+tERrbeFIyExAodSEUhE9j5WMpkRW-R はそのホストの行を消し、元のファイルを known_hosts.old として残します。消したあとは 2 行だけ残りました。
ssh-keygen -R 192.0.2.99 -f ~/.ssh/known_hostsHost 192.0.2.99 not found in /home/user/.ssh/known_hostsssh-keygen -R "[192.0.2.30]:2222" -f ~/.ssh/known_hosts# Host [192.0.2.30]:2222 found: line 2
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldないホストを指定すると not found の 1 行だけが出ました。ポートが違うサーバーは、known_hosts に書かれたとおり角かっことポートまで入れないと見つかりません。
ssh-keygen -H -f ~/.ssh/known_hostsWARNING: /home/user/.ssh/known_hosts.old contains unhashed entries
Delete this file to ensure privacy of hostnames
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.oldcat ~/.ssh/known_hosts|1|JL/knNlx/BnCoOWp5rNeRo3r1rE=|OCPyeFd1rgG8P2QGzrju/V2Y8c4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR
|1|AG9QJQvGaQmVsEusSdND1lM9cKI=|Ue0a9suJIzN0yxoJgV7ClLBgSYw= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyR-H はホスト名とアドレスをハッシュに変えます。ファイルが漏れてもどのサーバーに接続したかがわからないようにするオプションで、カンマでつないでいた名前とアドレスはハッシュ 2 行に分かれました。.old ファイルにハッシュ前の内容が残っているという警告もあわせて出ました。
ssh-keygen -F server2.example.com -f ~/.ssh/known_hosts# Host server2.example.com found: line 1
|1|JL/knNlx/BnCoOWp5rNeRo3r1rE=|OCPyeFd1rgG8P2QGzrju/V2Y8c4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID3s6oYeTCz7KeYs0f/60/Ix0DhmK4hf1uHCC10TrXyRハッシュ化したファイルでも、-F は名前でその行を見つけました。
6️⃣ ssh-copy-id で公開鍵を登録と authorized_keys
鍵を作っても、サーバーがその公開鍵を知らなければ接続は相変わらずパスワードで行います。公開鍵をサーバーに知らせる場所が接続先アカウントの ~/.ssh/authorized_keys で、このファイルに .pub の 1 行を入れるコマンドが ssh-copy-id です。秘密鍵は自分のコンピューターに残り、公開鍵 1 行だけが渡ります。下の図でステップのボタンを押すと、2 つのファイルがどこに置かれるかがわかります。
ssh-copy-id -n -i ~/.ssh/deploy_key.pub -o ConnectTimeout=3 user@192.0.2.10/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/deploy_key.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 192.0.2.10 port 22: Connection timed out-n は dry-run なのでサーバーには何も書きません。それでも ssh-copy-id はまずその鍵でログインを試して登録済みの鍵を除こうとしますが、192.0.2.10 は文書用のアドレスなので接続できず timed out で終わりました。-o の後ろのオプションはそのまま ssh に渡ります。
ssh-copy-id -n -f -i ~/.ssh/deploy_key.pub -o ConnectTimeout=3 user@192.0.2.10/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/deploy_key.pub"
=-=-=-=-=-=-=-=
Would have added the following key(s):
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk deploy@example.com
=-=-=-=-=-=-=-=-f はこの確認を飛ばす強制モードです。-n と一緒に付けると、サーバーに入る公開鍵 1 行が Would have added の下に出ました。.pub ファイルの内容と同じ行です。
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@192.0.2.10実際の登録は -n を外したこのコマンドで行います。ssh-copy-id のスクリプトとマニュアルによると、このコマンドはそのアカウントのパスワードを 1 回尋ね、サーバーの ~/.ssh/authorized_keys の末尾に公開鍵を追加したあと Number of key(s) added: 1 を出力します。ファイルとフォルダーがなければ作り、同じ鍵がすでにあれば飛ばします。
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 user@192.0.2.10ポートが 22 番でなければ -p で渡します。
ssh-copy-id がない環境では、公開鍵 1 行をサーバーの authorized_keys に直接追加します。サーバーにパスワードでログインしたあと、下の順に進めます。出力は同じサーバー内で .pub ファイルを追加して確かめたもので、別のサーバーなら .pub ファイルの 1 行をコピーして echo で追加します。
mkdir -p ~/.sshchmod 700 ~/.ssh.ssh フォルダーがなければ作り、権限を 700 にします。
cat ~/.ssh/deploy_key.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keyscat ~/.ssh/authorized_keysssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKKphFOc7oiKNpIHFTzK/ippCS5U5D+lF3xmXM6dmYjk deploy@example.comls -l ~/.ssh/authorized_keys-rw------- 1 user user 100 Oct 29 08:22 /home/user/.ssh/authorized_keysauthorized_keys に公開鍵 1 行が入り、権限は 600 です。sshd は既定の設定でユーザーのファイルの権限を先に調べ、誰でも書き込める権限ならログインを受け付けないと、sshd_config マニュアルの StrictModes の項目に書かれています。
ssh -i ~/.ssh/id_ed25519 user@192.0.2.10登録が終わったら秘密鍵で接続します。鍵の名前が id_ed25519 のような既定の名前なら ssh が自分で見つけ、deploy_key のような別の名前なら ssh -i オプションでファイルを指定します。
🔲 ssh-keygen コマンドシミュレーター
下のシミュレーターでは、ssh-keygen で鍵を作り、フィンガープリントの確認、パスフレーズの変更、known_hosts の整理、ssh-copy-id まで自分で入力して試せます。フィンガープリントと公開鍵は本文と同じ例の値で、ssh-copy-id は仮想サーバーに登録するまねだけをします。
🔢 FAQ & おすすめコンテンツ
ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。