環境
- Microsoft Windows 10.0.22000.318(21H2)
- Git Bash 2.34.1.windows.1
手順
1. 鍵を入れるフォルダに移動
$ cd ~/.ssh
2. 鍵を生成する
ssh-keygen
コマンドで鍵を生成する。
$ ssh-keygen -t ed25519 -C xxx@xxx.xxx -f ~/.ssh/id_ed25519_bitbucket
ssh-keygenの主なオプション
その他のオプションについてはこちら
オプション | 説明 |
---|---|
-t [方式] |
作成する鍵の暗号化形式を「rsa」(デフォルト)、「dsa」「ecdsa」「ed25519」から指定する |
-b [ビット数] |
作成する鍵のビット数を指定する(RSA形式の場合、デフォルトは2048bit) |
-f [ファイル名] |
ファイルを指定する(生成または読み出すファイルを指定)。ただし、併用するオプションによって意味が変化する(通常は鍵ファイル) |
-C [コメント] |
コメントを指定する(デフォルトは「ユーザー名@ホスト名」。「-C ""」でコメントを削除) |
こちらやこちらを参考にすると、RSA 鍵より ED25519 鍵の方が良さそうなので、ここでは、暗号化形式を「ed25519」にした。
また、例は Bitbucket 用なので、コメントは Bitbucket に登録したメールアドレス、ファイル名は id_ed25519_bitbucket
とした。(特に指定しない場合は -f
以降不要)
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/USERNAME/.ssh/id_ed25519_bitbucket
Your public key has been saved in /c/Users/USERNAME/.ssh/id_ed25519_bitbucket.pub
The key fingerprint is:
SHA256: ... xxx@xxx.xxx
The key's randomart image is:
+--[ED25519 256]--+
...
+----[SHA256]-----+
Enter passphrase:
で適当なパスフレーズを入力し、Enter same passphrase again:
でもう一度同じパスフレーズを入力する。(設定しない場合は未入力で Enter)
これで
秘密鍵:id_ed25519_bitbucket
公開鍵:id_ed25519_bitbucket.pub
が作成された。
3. configファイルに記載
config を書くメリットについてはこちら
ls
でファイルがあるか確認し、ない場合は作成する。
$ touch config
Vim や Atom で config を編集(コマンドから編集しない場合はスキップ)
$ vim config # vim
$ atom config # Atom
vim の場合は「i」キーで挿入モードに入り、以下のように入力。「Esc」キーでノーマルモードに戻り、:wq
(+Enter)で保存&終了。(vim 操作についての詳細はこちら)
Host bitbucket.org
HostName bitbucket.org
IdentityFile c:/Users/USERNAME/.ssh/id_ed25519_bitbucket
User git
設定 | 内容 |
---|---|
Host | 接続名 |
HostName | ホスト名 |
IdentityFile | 鍵へのPATH |
User | ユーザー名 |
4. SSHキーを登録
SSHキーの公開鍵をコピー
$ cat ~/.ssh/id_ed25519_bitbucket.pub | clip # Windows
$ cat ~/.ssh/id_ed25519_bitbucket.pub | pbcopy # Mac
Bitbucket の場合
- Bitbucket にログイン
- アイコンをクリックし、「Personal settings > SSH keys」 と進み、「Add key」をクリック
- Label には任意のラベル名、Key にはコピーした公開鍵を入力
これで端末からの鍵認証ができるようになった。
5. ssh-agentに登録
Windows では ssh-agent
に add
する必要がある。
ssh-agent
を起動
$ ssh-agent bash
ssh-agent に秘密鍵を登録
$ ssh-add id_ed25519_bitbucket
確認(鍵の情報が表示されればOK)
$ ssh-add -l
6. 接続確認
ssh -T [Host]
で確認
以下のように出力されればOK
$ ssh -T bitbucket.org
authenticated via ssh key.
You can use git to connect to Bitbucket. Shell access is disabled
7. Git Clone
- Bitbucket でリポジトリ作成済みとする
- 「Clone」をクリックし、コマンドをコピー
- コピーしたコマンドを実行し、実行したディレクトリにクローンされていることを確認
$ git clone git@bitbucket.org:USERNAME/REPOSITORY.git
Cloning into 'REPOSITORY'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
参考