この方法をやった環境
OS | Git |
---|---|
Debian GNU/Linux 10 (buster) | 2.23.0 |
macOS Catalina ver.10.15.5 | 2.21.0 |
CentOS Linux release 7.8.2003 (Core) | 1.8.3.1 |
参考 : GitHubのリポジトリにDeploy keysを登録してパスワードなしでアクセスする | CodeLab
秘密鍵と公開鍵を作成します。
鍵を作成する際にパスフレーズを設定するとリポジトリをクローンだけでなくフェッチするときにも毎回パスフレーズの入力が必要になってしまうため、今回パスフレーズは設定しません。
※. パスフレーズの設定および解除は自己責任で実施してください。
# 1. RSA鍵のペアを作成します。
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <<<< Enter(鍵を作成する場所)
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <<<< Enter(パスフレーズ)
Enter same passphrase again: <<<< Enter(パスフレーズ)
...省略...
# 2. 公開鍵を表示してコピーします。
$ cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAA...
鍵の名前をしていする場合は-f
を使うと便利
# -f {鍵のファイルパス}で指定できる
$ ssh-keygen -t rsa -f ~/.ssh/gitHub
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
#...省略...
$ ls -la ~/.ssh/gitHub*
-rw------- 1 mana staff 2622 7 13 19:27 /Users/ponsuke/.ssh/gitHub
-rw-r--r-- 1 mana staff 581 7 13 19:27 /Users/ponsuke/.ssh/gitHub.pub
GitHubのリポジトリのDeploy keysに公開鍵を登録します。
- GitHubにログインします。
- クローンするリポジトリ > [Settings]タブ > [Deploy key] > [Add deploy key]ボタン
- タイトルをつけてコピーした公開鍵を登録します。
GitHub上のソースをクローンします。
- [Code] > [Use SSH]で表示されたURLでクローンします。
- うっかりHTTPSのURLを使うとfatal: repository 'git@github.com/hoge/fuga.git' does not existみたいになります。
# 1. リポジトリのクローン先用にディレクトリを作成します。
$ mkdir git
# 2. 作成したディレクトリに移動します。
$ cd git/
# 3. リポジトリをクローンします。
$ git clone git@github.com:ponta/hoge.git
Cloning into bare repository 'hoge.git'...
...省略...
何の鍵か忘れそうなときはconfigファイルに書くと便利
$ vi ~/.ssh/config
# configにドメインと鍵を書いておくと便利
$ cat ~/.ssh/config
Host github
HostName github.com
IdentityFile ~/.ssh/gitHub
$ git clone git@github:ponta/hoge.git
Cloning into 'hoge'...
#...省略...
Resolving deltas: 100% (2/2), done.