何度も引っかかったのでメモ。
前提
- 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起動してすぐの場所がいいので,ここに作りました。