On Wed, 14 Jan 2009, Jakub Narebski wrote:
Jakub Narebski wrote:
The ISP I use (Telekomunikacja Polska S.A., aka TP) made some
unannounced changes for ADSL service (Neostrada) which made it block
repo.or.cz (and of course its aliases, including git.or.cz where git
wiki resides).
Thank you all for your help with arriving at solution. I'll describe it
below; perhaps it would help somebody else (now that it is in mailing
list archive).
I'll just add some comments that explain what I suggested with a little
more clarity. I'm not saying you have to use it or anything, I just want
to make sure I was clear!
And I'm glad you have a solution!
First, let me explain what I am working with:
I have access to shell account with set up SSH key access; let's name
this machine host.example.com. I don't have admin rights there, and
quota is quite tight; I have installed netcat (nc) in ~/bin - it is
only 22 kB.
Yes, that is great!
I don't know where to find SOCKS5 proxy, and I don't have 'tsocks'
installed either on my computer, or on shell account... I think.
tsocks is packaged in Debian, and surely in other distributions as well.
You don't run it on the shell account, but on your own workstation (which
I call "laptop" below for clarity).
A SOCKS5 proxy can be generated by ssh by running:
[user@laptop] $ ssh -D 1080 shelluser@shellbox
Now:
[user@laptop] $ telnet localhost 1080
will demonstrate that local port 1080 is listening. Because you created it
with -D to ssh, that local port 1080 *is* a SOCKS5 proxy, created by the
local SSH client.
Now, solutions:
1. For reading gitweb at repo.or.cz, and for reading and editing git
wiki at http://git.or.cz/gitwiki/ I use one of free HTTP proxies:
http://www.4proxy.de (first such proxy I have found that has an
option to _not_ obfuscate URLs; it still unnecessary escapes some
things like '/' in the query argument).
Great! (Though note that configuring the web browser to use your
SSH-created SOCKS5 proxy would let you avoid this escaping since the whole
system would be under your control.)
2. For pushing changes to repo.or.cz I use SSH tunnel (I could have
used ProxyCommand solution with netcat instead[1]). I run:
$ autossh -M 2000 -f -N -L 2222:repo.or.cz:22 jnareb@xxxxxxxxxxxxxxxx
at startup, and I have set the following in ~/.ssh/config:
# TP S.A. blocks repo.or.cz
Host repo.or.cz
#ssh -f -N -L 2222:repo.or.cz:22 host.example.com
NoHostAuthenticationForLocalhost yes
HostName localhost
Port 2222
[1] Alternate solution:
# TP S.A. blocks repo.or.cz
Host repo.or.cz
ProxyCommand ssh host.example.com exec /home/jnareb/bin/nc %h %p
Right-o.
3. For fetching changes via git:// protocol from repo.or.cz I use the
following setup in git config:
[core]
gitProxy = ssh-proxy for "repo.or.cz"
Unfortunately example from Documentation/config.txt with "ssh" as
git proxy command doesn't work, and neither putting command with
options (e.g. "ssh host.example.com /home/jnareb/bin/nc") doesn't
work: the command is _not_ split on whitespace. So I had to use
helper script ~/bin/ssh-proxy:
#!/bin/sh
ssh host.example.com /home/jnareb/bin/nc "$1" "$2"
Great!
I hope that would help somebody... and if somebody notices better
solution, hs/she would provide me with it :-)
(-:
-- Asheesh.
--
A visit to a fresh place will bring strange work.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html