Git Hubでssh接続する手順〜公開鍵・秘密鍵の生成から
GitHunbにsshs接続するために鍵の登録が必要になる。
その手順をまとめる。
初めての手順通りに進めれば接続できる。
公開鍵暗号での認証には公開鍵地秘密鍵が必要になる。
その手順。
公開鍵・秘密鍵を作成する
公開鍵暗号での認証には秘密鍵が必要になる。
秘密鍵は、秘密というだけあって他の人に見られてはいけない。つまり何処かに送信してはいけない。公開鍵はOK。
秘密鍵は、自分で保持し、公開鍵は相手(ここではGitHub)に送る。
まずは、公開鍵と秘密鍵のペアを生成する。
鍵を入れるフォルダに移動する。
$cd ~/.ssh
初めて鍵を生成する時は何も入っていないはず。
次のコマンドで鍵を生成する。
$ssh-keygen -t rsa
オプションはつけてある記事もみるが、このコマンドで、十分
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
何か聞かれたら三回エンターを押す。
is_rsaとid_/rsa.pubの二つの鍵が生成される。
なお、2回目、3回目のパラフレーズの設定(パスワード設定のようなもの)ですが、ここはなくてOK。(慣れてきたらパラフレーズの設定もありだが、
なくてもいい)
既にis_rsaが存在する人は、上書きされてしまうので注意。
違う名前で生成したい時は、
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):id_git_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
一回目で聞かれたタイミングで名前(ここではid_git_rsa)を指定。
あとは、エンターで、id_git_rsaとgit_rsa.pubが生成される。
ちなみに、名前を指定しない場合は、勝手に~/.ssh内に鍵を生成してているが、上記のように名前を指定する時は、~/.ssh内にいないとこの中に生成してくれないので注意。
公開鍵をGitHubにアップする。
で公開鍵が設定ができる。
画面右上の「Add SSH key」のボタンを押す。

なお、鍵の中身のクリップボードへのコピーは
$ pbcopy < ~/.ssh/id_rsa.pub (Mac)
鍵の名前は自分の作成したもの。
接続を確かめる。
$ ssh -T git@github.com
で返ってきたら接続完了!
Hi (account名)! You've successfully authenticated, but GitHub does not provide shell access.
しかし、
鍵を作る時は名前を指定していれば、うまく行かないかもしれない。
それは、ssh接続の際「~/.ssh/id_rsa」、「~/.ssh/id_dsa」、「~/.ssh/identity」しかデフォルトでは見にいかないからです。
それに対応するためには
~/.ssh/configを作成しその中に
Host github github.com
HostName github.com
IdentityFile ~/.ssh/id_git_rsa #ここに自分の鍵のファイル名
User git
を作成する。
これで、もう一つ接続をやってみるとうまくいくはず。
以下のようにコマンドを打って確かめてみる。
ssh -T github
githubとやりとりする
GitHubと実際にやり取りする時にID・パスワードを聞かれる時にssh接続がうまくいっていない。
レポジトリのディレクトリに入り
git config remote.origin.url
で確認し https://github.com/[ユーザID]/[リポジトリ] となっていたら
git remote set-url origin git@github.com:[ユーザID]/[リポジトリ].git
とする。
~/.ssh/configで設定している場合は
git remote set-url origin [Host名]:[ユーザID]/[リポジトリ].git
[Host名]とは~.ssh/configの1行目のHostの名前(ここまではgithub)のこと
ちなみに、この設定はレポジトリのディレクトリ内の/.git/configで設定できる。
[追記]
上記「GitHubとやりとりする」でssh接続について設定するのは面倒で
~/.gitconfig
[url "github:"]
InsteadOf = https://github.com/
InsteadOf = git@github.com:
を追記してあげれば解決でした。
ちなみにpushInsteadOfを使うとpushだけに適用出来るようです。
この記事が気に入ったらサポートをしてみませんか?