【0】dotsshディレクトリの権限確認
.sshディレクトリのアクセス権限は
本人しか読み書きできない権限(700)にする。
【1】公開鍵生成のコマンド
オプション ( -t と -b)を用いる。
[ -t (type) ] 暗号化形式を選択するオプション
[ -b (byte) ] 鍵の長さ()を決めるオプション
[ -C (Comment) ] コメントを決めるオプション。(例:-C "")
$ ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. [* 秘密鍵ペアの命名 (PATHが通っているので、鍵名称のみ打ち込んでOK)] Enter file in which to save the key (/Users/[ユーザー名]/.ssh/id_rsa): /Users/[ユーザー名]/.ssh/sakura_2_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/[ユーザー名]/.ssh/sakura_2_rsa. Your public key has been saved in /Users/[ユーザー名]/.ssh/sakura_2_rsa.pub. The key fingerprint is: SHA256:Udbrc1eDrEZ43Gysbm5mUP1J/4/EMonKrvPjlrom8ic [ユーザー名]@[ユーザー名]no[PC名].local key's randomart image is: +---[RSA 4096]----+ | S +.+ o =| | S +.+ o =| | S +.+ o =| | S +.+ o =| | S +.+ o =| +----[SHA256]-----+
【2】鍵の強度確認
$ ssh-keygen -l -f ~/.ssh/sakura_2_rsa.pub 4096 SHA256:[ハッシュ値] [ユーザー名]@[ユーザー名]no[PC名].local (RSA)
【鍵長】 2048以上
【暗号化形式】(RSA) or (ECDSA) or (Ed25519)
【3】作成時のパーミッション設定
デフォルトの権限は
秘密鍵「600」
公開鍵「644」
-rw------- 1 [所有者] [グループ] 3401 12 11 18:49 sakura_2_rsa -rw-r--r-- 1 [所有者] [グループ] 754 12 11 18:49 sakura_2_rsa.pub
【4】パスワードでログイン
サーバー側の公開鍵設定
一般ユーザーとしてログインしたあと、
ホームディレクトリに
.sshというディレクトリを作って、
権限を700(自分のみ読み書き可能)にする。
【5】authorized_keysを作成
touch authorized_keys chmod 600 authorized_keys
【6】authorized_keysに公開鍵を貼り付け
(* cat sakura_rsa.pub >> authorized_keys)
公開鍵文字列をクリップボードにコピーして、
vimエディタにて、authorized_keysに貼り付ける。
【7】接続してみる
ssh -i ~/.ssh/[秘密鍵名] [Linuxユーザー名]@xxx.xxx.xxx.xxx
【8】.ssh/configファイルの書式 (最低限必要な項目)
Host [ホスト名 (ショートカット名)] HostName xxx.xxx.xxx.xxx Identityfile ~/.ssh/[秘密鍵ファイル名] Port 22 (* デフォルト22から変更していない場合) User [Linuxユーザー名]
補論
秘密鍵から公開鍵を取り出す
[参考資料]
https://32imuf.com/ssh/command/ssh-keygen/
追加
ローカルPCで以下コマンドを実行。 Macのクリップボードに公開鍵の内容がコピーされる。
$ cat ~/.ssh/[公開鍵名].pub | pbcopy
$ ssh-keygen -m pem -C "" -f (公開鍵ペアの名称)
CircleCIに登録する鍵はpem形式である必要があるため、 -m pemオプションを付ける。
-Cオプション] 公開鍵の末尾に付けるコメントを任意のものにする
-fオプション] 作成する鍵のファイル名を指定