secretbase.log

.NET/C#/Pythonなど

proxy 経由で 社内から github にアクセスする方法

簡単そうでなかなかできませんでしたが、ssh経由 github にアクセスできましたのでその作業手順をご紹介します。

環境

つかったもの

connect.c の準備

まず connect.c をダウンロードして適当なディレクトリにおきます。下記は tools を作成してその下におきました。
ソースコードのコメントに記載してあるように、コンパイルします。

tkondou@hostname ~/tools
$ gcc connect.c -o connect

$ ls
connect.c  connect.exe

connect.exe ができました。

SSH Public キーの作成

$ ssh-keygen -t rsa -C "foo@bar.com"

にて ~/.ssh/id_rsa と id_rsa.pub ができます。
id_rsa..pub の内容を github の Account Settings の SSH Public Keys に登録してください。

~/.ssh/config を準備

$ cat  ~/.ssh/config
ProxyCommand C:/cygwin/home/tkondou/tools/connect.exe  -H proxy.mycompany.co.jp:80 %h %p

Host github.com
User git
Port 22
Hostname github.com
IdentityFile "C:\cygwin\home\tkondou\\.ssh\id_rsa"
TCPKeepAlive yes
IdentitiesOnly yes

Host ssh.github.com
User git
Port 443
Hostname ssh.github.com
IdentityFile "C:\cygwin\home\tkondou\\.ssh\id_rsa"
TCPKeepAlive yes
IdentitiesOnly yes

connect.exeを指定するパスは / で指定する必要がありますので注意してください。
proxy.mycompany.co.jp:80 の部分は、各自のプロキシ環境に合わせてください。
tkondouはcygwinのユーザ名ですのでこちらも適切に変更してください。

ssh での接続確認

$ ssh  -F ~/.ssh/config ssh.github.com
The authenticity of host '[ssh.github.com]:443 (<no hostip for proxy command>)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[ssh.github.com]:443' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0

PTY allocation request failed on channel 0というエラーでOKです。
これは git のコマンドがないためです。

git clone にて github のリポジトリのコピーをつくる

cointoss1973 の github アカウントから stream を git 経由で落としてきます。

tkondou@hostname ~/workspace
$ git clone ssh://git@ssh.github.com:443/cointoss1973/stream.git
Cloning into stream...
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (7/7), done.
Receiving objects: 100% (7/7), 4.60 KiB, done.
remote: Total 7 (delta 0), reused 7 (delta 0)

ssh のホスト名を間違っていたみたいでしばらくハマりましたが、無事にアクセスすることができました。




入門Git

入門Git