GitのSSH接続と言えばRSA
公開鍵をよく使っていますが、Backlogの公式ブログで「Backlog リリース: Git SSH 接続でより安全で高いパフォーマンスを持つ鍵と鍵交換アルゴリズムを追加し、古いものを一部廃止します。」という記事を見つけて、Ed25519
という方式が使えるとのことで、設定してみた。
次の流れで設定していきます。設定環境はMacintoshです。
ローカルマシンでの鍵作成 > Backlogに公開鍵を設定 > ~/.ssh/configの編集 > SSH接続確認
また、Backlogのサブドメインはご自身のものに読み替えてください(記事中のyamaroo
部分は自分のサブドメインです)。
ローカルマシンで鍵の作成
まずはローカルマシンで鍵を作成します (参考)。
自分は鍵ファイルの用途が後でわかるように、そして既存の鍵ファイルと重複しないように鍵ファイル名を指定しています。また、パスフレーズは空白のままいきました。
なお、記事中にあるように、全ユーザー一気に適用される訳ではないようですので、最後まで設定してみて上手くいかない場合(Access denied
) は ed25519
ではなく ecdsa
で設定してみると良さそうです。
$ cd ~/.ssh/
$ ssh-keygen -t ed25519 -C yamaroo.backlog.com -f yamaroo.backlog.com
$ # -t 暗号化タイプ
$ # -C コメント
$ # -f 鍵ファイル名
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in yamaroo.backlog.com.
Your public key has been saved in yamaroo.backlog.com.pub.
The key fingerprint is:
SHA256:yqsY4t20XfJUimsR9f+TcaobCkXQHbNIdWMAPkC21q4 yamaroo.backlog.com
The key's randomart image is:
+--[ED25519 256]--+
| .=.o+=o+ |
| . O...= . |
| + B . |
| o o o |
| S o.. |
| . o.oo . ..|
|. . .ooE+ . ..+|
|...oo oo*. . ..+ |
| ....+oo .. oo .|
+----[SHA256]-----+
Backlogに公開鍵を設定
先ほど作成された公開鍵yamaroo.backlog.com.pub
の中身をBacklogの [個人設定] - [SSH公開鍵] から登録します(参考)。
Macなのでpbcopy
コマンドでクリップボードにコピーできますので、活用します。
$ pbcopy < ~/.ssh/yamaroo.backlog.com.pub
~/.ssh/configの編集
~/.ssh/config
を編集します (参考)。既存ファイルがなければ次のように作成しましょう。
$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config
追加すべき設定内容は次の通りです。
Host yamaroo.git.backlog.com
User yamaroo
HostName yamaroo.git.backlog.com
IdentityFile ~/.ssh/yamaroo.backlog.com
SSH接続確認
次のようにSSHコマンドを入力して接続確認を行います。
$ ssh -T yamaroo@yamaroo.git.backlog.com
成功すると、こんなメッセージが出ます。
The authenticity of host 'yamaroo.git.backlog.com (54.250.148.49)' can't be established.
RSA key fingerprint is SHA256:w1Lng4UpfjBOloZubOkoIusr/eYXc6lBfxcaLlogfI0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'yamaroo.git.backlog.com,54.250.148.49' (RSA) to the list of known hosts.
Hi ! You've successfully authenticated, but Backlog does not provide shell access.
(おまけ)git add もしくは git cloneを用いてURLを設定する
SSH設定ができたら、Backlogのリモートリポジトリをローカルとリンクさせると思いますので、そのコマンドまでのせておきます。
既存のローカルリポジトリをbacklog Gitに紐つけたい場合
$ git remote add origin yamaroo@yamaroo.git.backlog.com:/Project/program.git
$ # URL部分はbacklog GitのリポジトリのSSH URL
backlog Gitをダウンロードする場合
$ git clone yamaroo@yamaroo.git.backlog.com:/Project/program.git
$ # URL部分はbacklog GitのリポジトリのSSH URL