📝
Security Keyを利用したSSH Git operationsを試してみた
Git操作においてSecurity Keyが利用できる様になったとのことで試してみました。
OpenSSH version 8.2以上で利用可能なので、必要に応じてopensshのバージョンを上げます。
$ brew install openssh
以下の通りメールアドレスを指定してコマンドを実行します。
$ ssh-keygen -t ecdsa-sk -C <email address>
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation.
Enter file in which to save the key (/path/.ssh/id_ecdsa_sk):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /path/.ssh/id_ecdsa_sk
Your public key has been saved in /path/.ssh/id_ecdsa_sk.pub
The key fingerprint is:
SHA256:<finger print> <email address>
The key's randomart image is:
+-[ECDSA-SK 256]--+
| ....|
| . o. o|
| o OE+.o|
| . %.Xo =|
| S o X.+*.|
| ..oOBoo|
| . o+X++ |
| . + * .|
| . o . |
+----[SHA256]-----+
PCに接続されているSecurity Keyを認識してUser Presenceが要求される。その後はパスフレーズの設定などを適宜実施します。
id_ecdsa_sk.pub
というファイル名で公開鍵が作成されているので、通常SSH鍵を登録するのと同様にGitHubに登録します。
これでGitHub操作を実施する際に以下の通りSecurity Keyが要求されるようになります。
失敗時
$ git clone git@github.com:github/secure_headers.git
Cloning into 'secure_headers'...
Confirm user presence for key ECDSA-SK SHA256:<finger print>
sign_and_send_pubkey: signing failed for ECDSA-SK "/path/.ssh/id_ecdsa_sk": invalid format
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
成功時
$ git clone git@github.com:github/secure_headers.git
Cloning into 'secure_headers'...
Confirm user presence for key ECDSA-SK SHA256:<finger print>
User presence confirmed
remote: Enumerating objects: 6687, done.
remote: Counting objects: 100% (335/335), done.
remote: Compressing objects: 100% (216/216), done.
remote: Total 6687 (delta 196), reused 227 (delta 118), pack-reused 6352
Receiving objects: 100% (6687/6687), 1.54 MiB | 2.85 MiB/s, done.
Resolving deltas: 100% (3671/3671), done.
Discussion