概要
SSH鍵を生成する ssh-keygen
コマンド
その際、ファイル名を指定してSSH鍵を生成する方法と、その他関連コマンド
コマンド
生成されるファイルの出力先は、もちろん ~/.ssh/
名前を指定して作成
-f
オプションでファイル名(厳密には保存先)が決められる
ssh-keygen -f id_rsa_file_name
標準出力なしで作成
-q
標準出力を無効にする(キーマップが出ない)
ssh-keygen -q -f id_rsa_file_name
コメントの指定
-C
オプション
「ユーザ名@ホスト名
(デフォルト)」以外にする場合に使用
別のメールアドレスとかを使用する(xxx@example.com)
ssh-keygen -C comment -f id_rsa_file_name
暗号化形式の指定
-t
オプション
暗号化形式を「rsa(デフォルト)」以外にする場合、「dsa」「ecdsa」「ed25519」から指定
ssh-keygen -t ed25519 -f id_rsa_file_name
fingerprint の指定
-E
オプション
鍵のfingerprintを「sha256(デフォルト)」以外にする場合、「md5」指定
ssh-keygen -E md5 -f id_rsa_file_name
エラー: SSH鍵の権限がオープン過ぎて怒られた場合
何かしら SSH 通信を利用したときに、以下の場合は、SSH キーの権限を変更する必要があります。
発生するエラー: Permissions 0644 for 'id_rsa_xxxxx' are too open.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/xxxxx/.ssh/id_rsa_xxxxx' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/xxxxx/.ssh/id_rsa_xxxxx": bad permissions
git@github.com: Permission denied (publickey).
👉 秘密鍵のパーミッションが "644" なので、他のユーザーからアクセスできるような権限では使えないよ !
権限を変更する
chmod
コマンドで、書き込み・読み取り・実行権限を変更する(詳しい説明は割愛)
# 対象のキーを指定(600 もしくは 400)
chmod 600 id_rsa_xxxxx
おまけ
生成したSSH鍵の公開鍵をコピーするときは、以下でも可能
macOSの場合
pbcopy < ~/.ssh/ファイル名.pub
Windows で Git Bash など使っていた場合
clip < ~/.ssh/id_rsa.pub