一半君的总结纸

听话只听一半君

如何在公司防火墙后用git和bitbucket同步(默认的port 22被封了)

通常remote  configuration看起来是这样的

$ git remote show origin
* remote origin
Fetch URL: git@bitbucket.org:user_name/repo_name.git
Push URL: git@bitbucket.org:user_name/repo_name.git

为了达到翻墙的目的,我们需要一个ssh服务器(可以是家里的台式机或者nas或者路由器),我用的是刷了tomato的某路由器,

$ ssh -f user@my_personal_server.com -p   -L :bitbucket.org:22 -N

以上的user@my_personal_server.com ssh-server-port local-port 显然要换成自己选择的地址和端口
比如

$ ssh -f user@my_personal_server.com -p 443 -L 9005:bitbucket.org:22 -N

-f是后台运行 但是还可以输密码,当然你也可以用自动登录(用ssh-keygen来生成rsa或dsa key)
-N是不进入命令行模式 只是建个tunnel
建好之后再运行

$ git remote add tunnel_origin ssh://git@localhost:9005/user_name/repo_name.git

之后就可以正常使用git了
比如

$ git pull tunnel_origin master
From ssh://localhost:9005/user_name/repo_name
* branch master -> FETCH_HEAD
...
...
7 files changed, 202 insertions(+), 50 deletions(-)

参考:

Working with git through a SSH tunnel

Advertisements

2 responses to “如何在公司防火墙后用git和bitbucket同步(默认的port 22被封了)

    • 屌丝男 六月 28, 2013 @ 2:37 下午

      完全看不懂…… 我不是程序员,只是上班要写python script,上面的我也是搜来的,公司后来又开放了好像。最近上班都没时间乱搞了,公司用的是perforce

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: