何度も引っかかったのでメモ。
前提
- GitHub登録済み
- Gitインストール済み
- Git Bash使用(多分コマンドプロンプトとかでもできる)
秘密鍵・公開鍵生成
Git Bashを使います。現在地は~(/c/Users/[Username])です。以下のコマンドで鍵を生成します。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/[filename]
[filename]にはrsa_githubなど好きな名前を付けましょう。これで、RSA方式の4096bit長の鍵が生成されました。
公開鍵をGitHubに登録する
- ブラウザを開き、GitHubの
Settings->SSH and GPG keysに行きます。 - SSH keysの
New SSH keyをクリックします。 -
Titleに適当な名前を付けます。 - 下の
Keyに公開鍵を貼り付けるのですが、ここでGit Bashの方に戻ります。
Git Bashで.sshフォルダに移動します。
cd .ssh
そこでlsすると、[filename]と[filename].pubの二つのファイルがあると思います。.pub有りが公開鍵、.pub無しが秘密鍵です。公開鍵の内容をコピーします。catで表示してコピーでもいいですが、以下のコマンドが便利です。
clip < ~/.ssh/[filename].pub
これでクリップボードに公開鍵がコピーされました。そして、ブラウザに戻りましょう。4.で説明したKeyに公開鍵をペーストします。ペーストしたら、Add SSH keyで保存します。これで、GitHubでの操作は終わりです。
SSH接続の設定をする
Git Bashで.ssh直下にconfigファイルを作ります。
touch config
あとはvimなりatomなり好きなものでconfigを編集します。自分はatom使いたいので、
atom config
で、atomで開きます。
vimの場合は,
vi config
編集アプリで以下のように書き込みます。
Host github
HostName github.com
IdentityFile ~/.ssh/[filename]
User git
左の空白はtabです。
さらに、windowsではssh-agentにaddする必要があります。ssh-agentを起動します。
ssh-agent bash
ssh-agentに先ほど生成した秘密鍵を登録します。
ssh-add ~/.ssh/[filemname]
登録できたか確認します。
ssh-add -l
鍵の情報が表示されていればOKです。
接続の確認
それでは、接続できるか確認してみましょう。
ssh -T git@github.com
これで、以下のように表示されていれば成功です。
Hi [Username]! You've successfully authenticated, but GitHub does not provide shell access.
GitLabでもやることは大体一緒です。~/.ssh/のところは,鍵を作りたい好きな場所でよいです。僕はGit Bash起動してすぐの場所がいいので,ここに作りました。