github設定

githubの設定のメモ。

githubリポジトリ生成

[New Repository]を押して、プロジェクト名などを入力して終わり。

ローカルリポジトリの生成

Windows上にローカルリポジトリを生成します。Windows環境下では主にCygwin上で開発しているので、git用リポジトリを生成するために、Cygwinを開いてローカルリポジトリ用のディレクトリを作成後、以下のコマンドを実行します。

$git init

手順通り、適当なファイル作ってをcommitしてみます。

$touch README
$git add README
$git commit -m 'first commit'
$git remote add origin git@github.com:***/test.git
$git push origin master

公開鍵・秘密鍵の生成

ところが、最後の git push origin master で

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

とエラーが出てcommitできません。
どうもsshの認証でエラーみたいなので、色々調べると以下のような記事を見つけて解決できました。

秘密鍵と公開鍵を生成し、githubの自分のアカウントページに公開鍵を登録すれば解決する模様。

$ssh-keygen -t dsa -f ~/.ssh/id_rsa_github

~/.ssh/以下に秘密鍵(id_rsa_github)と公開鍵(id_rsa_github.pub)が生成されます。さらに、~/.ssh/configに以下を追記します。


Host github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

公開鍵の登録

githubの[アカウントの設定ページ]->[SSH公開鍵]から生成した公開鍵の内容を登録(id_rsa_github.pubをテキストエディタで開いてコピペ)

秘密鍵の登録

ローカルで以下のコマンドを実行してssh-agentを起動し、秘密鍵を登録します。


$eval `ssh-agent`
4ssh-add $HOME/.ssh/id_rsa_github

再度git pushを実行してみます。

$ git push origin master 
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 914 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:***/test.git
 * [new branch]      master -> master

成功したようです。