GitHubで毎回ユーザー名とパスワードを聞かれるのでSSH接続でスキップする


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

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

秘密鍵・公開鍵を設定

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

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

秘密鍵・公開鍵の生成

$ ssh-keygen -t rsa -C [email protected]

[email protected] には自分のメールアドレスを入れてください。

鍵を保存するファイル、パスフレーズの入力を求められますが、何も入力せずにエンターを押して構いません。
鍵の生成が完了した後に$ ll ~/.sshとするとida_rsaida_rsa.pubといファイルが確認できるはずです。

GitHubに公開鍵を登録

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

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

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

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

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

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