いつも忘れるんでメモっとく。
gitのホストが複数あったりして、
公開鍵の指定ディレクトリに入れたいのだけどってときに使える。
用意するもの
・ git コマンドライン
・ gitのホスト(以下 fugahoge.com)
公開鍵の作成
command
# .sshへ移動
$ cd ~/.ssh/
# ドメイン名のフォルダ作成、移動 (ここに鍵を入れる)
$ mkdir fugahoge
$ cd fugahoge
# 確認
$ pwd
/Users/[USERNAME]/.ssh/fugahoge
# 鍵作成
$ ssh-keygen -t rsa -C "fugahoge.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/[USERNAME]/.ssh/id_rsa): /Users/[USERNAME]/.ssh/fugahoge # ←ここフルパスで書くこと ~/.ssh/だといかなかったかも?
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in fugahoge
Your public key has been saved in fugahoge.pub
The key fingerprint is:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX fugahoge
The key's randomart image is:'
# 鍵のアクセス権を600にしとく
chmod 600 ./
# コンフィグに接続先の設定をしとく
vim ~/.ssh/config
## 追加しとく
Host fugahoge.com
HostName fugahoge.com
Port 22
User XX
IdentityFile ~/.ssh/fugahoge
サーバ側に公開鍵を設置する(ここは割愛)
今回のディレクトリ例だと以下ディレクトリにできてるのでサーバのauthorized_keysに入れるか、
サービスならssh登録のとこに打ち込めばいいと思います。
/Users/[USERNAME]/.ssh/fugahoge.pub
接続
command
# ssh接続の確認
$ ssh fugahoge.com
# ssh認証通ったけどバックログではシェルにアクセス出来ません云々言われる
"Hi Name! You've successfully authenticated, but Backlog does not provide shell access."
# 素直にgit clone
$ git clone XX@fugahoge.com:/path/to.git
"Cloning into 'リポジトリ名'…"
Checking connectivity... done
###余談
以前バックログとかBitBucketのメンテナンス時間と案件が切羽つまってる時がかぶったことがあって、
それからは自鯖にGitを設置するようにした。
メンテ時間に待ったは効かないと思うので(提供会社のある国の深夜帯に更新とか多いみたい)、
出来たら自鯖Gitを主体に下のような感じで構築できたらなって思います。
自鯖Git → post-receive PUSH → バックログ、Gitサービス
出来たら記事書きます。