※ご指摘いただきました箇所を訂正済みです。
詳しくは「※追記 2024.06.13」
公開鍵・秘密鍵作成
コマンドで、
$ ssh-keygen -t ed25519
と打つと、色々聞かれますが、全て規定値で問題ないので、
エンターを押しまくります。
Generating public/private ed25519 key pair. Enter file in which to save the key (/Users/[user name]/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/[user name]/.ssh/id_ed25519. Your public key has been saved in /Users/[user name]/.ssh/id_ed25519.pub. The key fingerprint is: [...]:[..........] [user name]@[mysv].local The key's randomart image is: +--[ED25519 256]--+ | ...... | | | | | +----[SHA256]-----+
公開鍵:~/.ssh/id_ed25519.pub
秘密鍵:~/.ssh/id_ed25519
が作成されるはず。
確認
作成されたか確認します。
$ cd ~/.ssh $ ls
id_ed25519 id_ed25519.pub
いる。できた。
GitHubに登録
公開鍵をコピー
# Mac
$ pbcopy < ~/.ssh/id_ed25519.pub
# windows (Git Bash) なら、clipを使う
$ cat ~/.ssh/id_ed25519.pub | clip
公開鍵を登録する
- GithubのSSH鍵登録画面を開く(https://github.com/settings/keys)
New SSH key
Title
はパソコン名などわかりやすいものにするといいKey
コピーした公開鍵を貼り付けるAdd SSH Key
解説
ssh-keygen
ssh-keygen
は、認証用の鍵を生成したりするコマンド
-t ed25519
-t
は、生成する鍵の種類を指定するオプション。
ed25519
は公開鍵暗号方式のアルゴリズムの一つ。
ed25519
以外にも、dsa, ecdsa, rsa, rsa1
が指定できる。
公開鍵暗号方式
2つの鍵を利用してデータのやり取りを行う方式。
公開鍵と秘密鍵
公開鍵とペアになっている秘密鍵を持っている人だけが暗号を解くことができる。(復号化)
rsa1
SSH1での使用に限られているが、脆弱性があるので非推奨。
rsa
rsa1の後継として出たもの。
SSH2, RSA-2048以上での使用を推奨されている。
長い鍵長が選べる。
主流。4096bitで作ろう。
dsa
rsaの代替として開発され、SSH2での使用を推奨されている。
今は鍵の長さが短い。
ecdsa
ブロックチェーンでも使われている楕円曲線暗号。
サーバーにかかる負荷が、rsaより少ない。
ed25519
楕円曲線暗号。
ecdsaより署名生成/検証のパフォーマンスがいい。
安全で性能がいいのでed25519
が最強らしい。
Gitでも使える。
脱線:SSL
公開鍵暗号方式と共通鍵暗号方式を組み合わせたもので、httpsから始まるウェブサイトは、SSLが適用されている。
-C pan-shoku@example.com
-C
は、コメントで、一般的にGithubに登録したメールアドレスを設定する。
なくてもいい。
参考サイト
※追記 2024.06.13
一部誤りを修正いたしました。
訂正前は、下記箇所の公開鍵と秘密鍵を逆に書いておりました。
この記事を参考にしてくださった方、致命的なミスを掲載してしまい申し訳ございませんでした。
そして、ご指摘いただきありがとうございます。
訂正後↓
公開鍵:~/.ssh/id_ed25519.pub
秘密鍵:~/.ssh/id_ed25519
が作成されるはず。
コメント
話題になってますよ
https://x.com/ncrpy/status/1780912227660550557?s=46
コメントありがとうございます。返信が遅くなり申し訳ございません。
逆に書いてしまったことに、今の今まで気づかずにおりました。確認不足で申し訳ございません。
共有いただきありがとうございます。大変助かりました。
遅くなってしまいましたが、誤りを修正させていただきます。