Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

SSH認証界☆最高☆の秘密鍵「Ed25519鍵」を生成する。GithubのSSHキーを変更する。

Ed25519鍵って?

現在(本日は2017年12月3日です)もっとも安全なアルゴリズムとのことです。
参考サイト様
linuxfan.info
sshでed25519鍵を使うようにした - @znz blog


「Ed25519」でググるとなんだかよくわからないけど、ツイストしたエドワーズ曲線とかロマンを感じなくもないです(・∀・)

エドワーズ曲線デジタル署名アルゴリズムは、公開鍵暗号において、ツイストしたエドワーズ曲線(Twisted Edwards curve)に基づくシュノア署名(Schnorr signature)の一種を用いたデジタル署名の一つである。他のデジタル署名において見つかっている安全性に関する問題を回避した上で、高効率で暗号化処理が行われるように設計されている。エドワーズ曲線電子署名アルゴリズムは、ダニエル・バーンスタインが率いるチームによって開発された。

エドワーズ曲線デジタル署名アルゴリズム - Wikipedia

このエントリでは
Githubで登録しているSSH秘密鍵をEd25519の鍵にします。
Ed25519鍵はホスティングサービスが対応していれば使用できます。
Githubは使用できます。

本当はBitBucketもEd25519の鍵に変更したかったのですが
対応されていないのか色々調べたのですがうまく行かなったです。
結局公式サイト(Invalid SSH Key - Atlassian Documentation)のとおりに設定しました。


Ed25519鍵を生成する

早速生成してみます。Ed25519鍵の生成は、「ssh-keygen -t ed25519」コマンドで行います。

$ ssh-keygen -t ed25519

いくつか聞かれますがエンターでOKです。
Enter file in which to save the key → そのままenter
Enter passphrase (empty for no passphrase): → そのままenter
Enter same passphrase again: → そのままenter

これで生成できたので、中身をコピーしてGithubやBitBucketの鍵を変更します。

$ pbcopy <  ~/.ssh/id_ed25519.pub

GithubSSH鍵を変更

こちらが公式サイトの解説ページです。
Connecting to GitHub with SSH - User Documentation

githubにアクセスしてログインします
https://github.com/

・画面右上のユーザーアイコンを押して「Settings」をクリックします。

・左側の「Personal settings」の中から「SSH and GPG keys」をクリックします。

・古いSSH鍵が登録されていたら「Delete」ボタンで削除します。
 この時削除するのは先程Ed25519鍵を生成したPCで登録した鍵です。
 複数の端末から利用している場合は気をつけて下さい。

・「New SSH Key」ボタンをクリックします。

・「Key」の中にさきほどコピーしたテキストをペーストします。
 タイトルはこの端末であるということがわかるように任意のタイトルを入力しておきます。

・「Add SSH Key」ボタンをクリックして保存します。

正しく追加されたか次のコマンドで確認します。

$ ssh -T git@github.com

「You've successfully authenticated, but GitHub does not provide shell access.」などと表示されればOKですが、
詳しくは公式サイトで確認してみてください。
Testing your SSH connection - User Documentation