##git cloneできなかったお話
git cloneをしようとして詰まった話です。
他のサイトを閲覧していると以下のコードで可能だと書いてあります。しかし自分の環境だと実行されずエラーを出力しました。
git clone [リポジトリアドレス]
# git cloneを実行
$ git clone git@github.com:kawahara-hiroyuki/kawa.vimrc.git
#以下エラー内容
Cloning into 'kawa.vimrc'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
##~/.ssh/configの設定について
調べるとホスト名の設定が失敗している時に出るエラーの一つだそうです。
ホストの設定をしてある~/.ssh/config
を以下のように記述していました。
またそれぞれの行の意味を下に記述します。
# ~/.ssh/config
Host gitgit
User gituser
HostName github.com
IdentityFile ~/.ssh/test
IdentitiesOnly yes
Host | |
---|---|
User | gitの通信をするユーザーを指定 |
HostName | 接続先の設定。FQDNを使用している。 こちらを参考にgithubのIPアドレス192.30.253.112でも良い |
IdentityFile | 秘密鍵の置き場所。今回は~/.ssh/testという秘密鍵を使用している。 秘密鍵についてはこちらを参考。 |
IdentitiesOnly | 使用する秘密鍵をIdentityFileだけにする。 デフォルトではnoであり、noだと全ての秘密鍵を試そうとする。 |
##git cloneコマンドの内訳
git cloneコマンドに使う引数の設定は以下のようになっています。
コマンドでssh接続するのと似た感じでしょうか。
git clone [User]@[Host]:[リポジトリアドレス]
今回はgithubに接続しようとします。
[User]はgithubの設定に従って、git
を使用します。(省略する場合は、~/.ssh/config
のUserが使用されます)。
[Host]は~/.ssh/config
にしたがってgitgit
を使います。
##~/.ssh/config
を考慮して再度clone
具体的には、今回は以下のコマンドが正解でした。
# 今回の場合のcloneするコマンド
git clone git@gitgit:kawahara-hiroyuki/kawa.vimrc.git
# ~/.ssh/configのUserをgitにしてる場合は以下でも可
git clone gitgit:kawahara-hiroyuki/kawa.vimrc.git