git clone で error: The requested URL returned error: 401 Authorization Required 時の認証設定(ファイル or SSH) + eclipseで設定

github側のリポジトリ用の認証設定をしていちいちログインせずにコーディングする。

簡単設定

個人で開発するくらいのレベルならホームディレクトリーに.netrcファイルを用意することで解決できる。

~/.netrcの中身はこんな感じ 

machine github.com
login ユーザ名
password パスワード

これで普通に使える。ただし、httpのみ

sshで設定

まずキーを生成する。
デフォルトで作ってもいいけど、github_rsaというファイルで専用のキーを作ることにする。

ssh-keygen -t rsa -f ~/.ssh/github_rsa

次に~/.ssh/configファイルを作って、下記の内容で設定する。

Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile ~/.ssh/github_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

github_rsa.pubファイルの中身をgithubssh設定(下記のURL)に貼付ける。
https://github.com/settings/ssh

これでssh設定は完了。
以下のコマンドで通信できるかの確認し、successfully authenticatedが出ればOK

$ ssh -T git@github.com
Hi byunsangho! You've successfully authenticated, but GitHub does not provide shell access.

もしBad owner or permissions エラーが出たらconfigファイルのパーミッションがよろしくないので、

$ chmod 600 ~/.ssh/config

で解決できるはず


番外編 eclipseで設定

コマンドラインが安全だが、eclipseのegitでgithubを使いたい場合にssh設定編
eclipse 4.2基準

general -> network connections -> ssh2
add private keyで上記で設定したsshキーをeclipseで設定する。


あとはgithub側のssh urlをコピーしてcloneする。
ユーザ名はgitのままで変更しない。以後ログインはいらなくなる。