Published on

GitHubでパスワードを毎回聞かれないようにSSH接続を設定する

Authors

ユーザー名とパスワードを聞かれる原因

httpsでリポジトリをクローンしてきた場合に、ユーザー名とパスワードを毎回聞かれます。毎回聞かれずにpushをしたいのであれば、SSH接続を設定するか、もしくは認証情報の仕組みを拡張(詳しいことはわからないので 7.14 Git のさまざまなツール - 認証情報の保存 を参照してください)するなどの対策が必要です。

秘密鍵・公開鍵を設定

SSH接続では秘密鍵と公開鍵を用いて、鍵交換方式というセキュアな接続を行います。秘密鍵とは自分だけしか見ることの出来ない鍵のことで、公開鍵とは相手に預けるための鍵のことです。この2つの鍵はペアになっており、公開鍵を預けたサイトにアクセスするには必ずペアの秘密鍵を持っているマシンでなければなりません。

詳しくはこちら http://nigohiroki.hatenablog.com/entry/2013/08/18/221434

秘密鍵・公開鍵の生成

$ ssh-keygen -t rsa -C "email@example.com"

email@example.com には自分のメールアドレスを入れてください。

鍵を保存するファイル、パスフレーズの入力を求められますが、何も入力せずにエンターを押して構いません。 鍵の生成が完了した後に $ ll ~/.ssh とすると id_rsaid_rsa.pub といファイルが確認できるはずです。 (※原文の ida_rsa は通常 id_rsa のタイポと思われるため修正しています)

GitHubに公開鍵を登録

Settings > SSH and GPG keys から設定が出来ます。

GitHub_ssh_setting.png

Titleは自由に入力ができます。Keyには id_rsa.pub の中身をそのままコピペしてください。

SSH接続できるか確認してみる

最後にSSH接続ができるか確認してみます。

$ ssh -T git@github.com

このコマンドで以下のように表示されたら接続成功です。

Hi username! You've successfully authenticated, but GitHub does not
provide shell access.