Cygwinで会社のファイアーウォール越しにGitHub(ついでにGistも)にアクセスする設定メモ
一応、以下を参考にした
Big Sky :: SSHポートが通らなくてもgithub.comにpushする方法
ただ、うちの会社の環境だと上記の設定だけではOwner cloneができなかったり、pushができなかったり名前解決すらできない状態(たぶん、社内一般の端末からは社内に存在するホストの名前解決しかできず、社外のホストの名前解決はproxyサーバのみに許されているような感じ?)だったので、以下のページにあるようなconnect.c*1というSSHのProxyCommandを使う方法も合わせて行った。
SSH Proxy Command connect.c - kanamono's wiki page
メモっとかないと忘れてしまいそうなので、とりあえず、やったことのまとめ。
Git/OpenSSHのインストール
まずGit
/etc/postinstallにスクリプトができるので実行するのを忘れずに。
$ cyg-port install git $ cd /etc/postinstall $ ./git.sh
次にOpenSSH
$ cyg-port install openssh
git-config
基本的な設定
$ git config --global user.name "snaka" $ git config --global user.email "snaka.gml@gmail.com"
GitHub用の設定
$ git config --global github.user snaka $ git config --global github.token ****************************
tokenは https://github.com/account を参照
参考
OpenSSHの設定/Keyペアの生成と登録
Keyの作成
$ ssh-keygen -t dsa -C "snaka.gml@gmail.com"
すると ~/.ssh に id_dsa と id_dsa.public ができる
id_dsa.publicの内容はGitHubのアカウントページに登録する
$ cat id_dsa.public | putclip
でクリップボードに内容がコピーされるので、 https://github.com/account の所定の場所に登録する。
参考
OpenSSHの設定/ProxyCommandの作成と登録
以下のサイトから connect.c を取得してビルド
$ wget http://www.taiyo.co.jp/~gotoh/ssh/connect.c $ gcc connect.c -o connect
で作成された connect コマンドを適当な場所に格納しておいて、
~/.ssh/config を開いて編集
Host github.com User git Hostname ssh.github.com Port 443 ProxyCommand /home/snaka/bin/connect -d -H address.of.your.proxy.here:8080 %h %p IdentityFile /home/snaka/.ssh/id_dsa Host gist.github.com User git Hostname ssh.github.com Port 443 ProxyCommand /home/snaka/bin/connect -d -H address.of.your.proxy.here:8080 %h %p IdentityFile /home/snaka/.ssh/id_dsa
"address.of.your.proxy.here"はちゃんとしたアドレスに置き換える。