動機
500万回くらい書かれてると思うけどこの間も聞かれたので。
環境
Ubuntu 16.04とWindows10で確認済。
OpenSSLがインストールされている。
手順
- SSH keysを作る。
- .ssh/configを書く。
- 1.で作成した公開鍵をgitlabに登録する。
- SSHでgit cloneできた!
これだけ。
SSH keysを作る
既に存在している場合はスキップ。
ssh-keygen -t rsa -b 4096 -C "comment"
Githubの場合、コメントにはGithub登録ユーザのメールアドレスを入れると書いてある記事をよく見かけますが、gitlabでは特に入れなくても問題ないです。
.ssh/configを書く
Git Bash使ってたら〜という記事をたまに見かけるが、普通に.ssh
以下にconfig
を作成すればよい。最初は存在しないので新しいファイルを作成する。
vi config
host [任意の接続名]
HostName [gitlabのホスト名またはIP]
User [gitlabのユーザ名]
IdentityFile ~/.ssh/[秘密鍵]
Port [ポート番号]
gitlabのポート番号がわからない場合、gitlabのconfig/gitlab.yml
にssh_port
の記述があるので確認してください。デフォルトは22でよかった気がします。
公開鍵をgitlabに登録する
右上のユーザアイコンからProfile→SSH keys
で開く画面に公開鍵をコピペ。
SSHできるか試す
ssh -T git@[ホスト名またはIPアドレス]
上を打ってWelcomeされればOK。あとはgit clone git://git@[ホスト名またはIPアドレス]/[グループ]/[リポジトリ].git
でできるはず。
トラブルシューティング
SSHできない(Permission Deniedなどといわれる)
デバッグすれば大体原因がわかるのでデバッグしよう
ssh -T git@[ホスト名またはIPアドレス] -vvv
SSHは通るのにgit cloneが通らない
プロトコルを変更すると通る場合があります
git clone ssh://git@[ホスト名またはIPアドレス]/[グループ]/[リポジトリ].git