1) On the Linux machine (tunneling destination) that you will clone the github from, generate a SSH key (if not already done)
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
2) Add a new SSH key to your GitHub account
https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
3) Setup for large filesystems on github
$ git lfs install
4) Setup for HTTP tunneling (required for gitlab.cern.ch)
$ git config --global http.proxy http://localhost:8888
All off these steps only need to be done once per unix account
Prerequest Access to rhel6-64.
GitHub Access
Setup ssh-key as described above. Append the following lines to ~/.ssh/config:
Host github.com
User git
ProxyCommand ssh USER@rhel6-64.slac.stanford.edu -W %h:%p
# Log into server $ ssh rdusr219 # Source environment script $ source /u1/DUNE/setup_env.csh # Start the SOCKS2HTTP $ HttpTunnelStart Then hit enter key # perform all your github pull/push/clone operations $ git ....... # Stop the SOCKS2HTTP before logging out $ HttpTunnelStop
Prerequest Access to lxplus.
GitHub Access
Setup ssh-key as described above. Append the following lines to ~/.ssh/config:
Host github.com
User git
ProxyCommand ssh USER@lxplus.cern.ch -W %h:%p
GitHub LFS Access
# Log into server $ ssh pddaq-gen03 # Source environment script $ source /daq/rce/setup_env.sh # Start the SOCKS2HTTP $ HttpTunnelStart Then hit enter key # perform all your github pull/push/clone operations $ git ....... # Stop the SOCKS2HTTP before logging out $ HttpTunnelStop
Currently git-lfs (v2.0.x) supports HTTP/HTTPS access only. SOCK5 proxy is on the v2.1 roadmap.
https://github.com/git-lfs/git-lfs/milestone/7
A possible solution is to setup a SOCK5 tunnel to lxplus via ssh, and convert SOCKS to HTTP using polipo on the daq machine.
https://github.com/jech/polipo
An excitable can be found at pddaq-gen03:/daq/rce.
Notes
Patrick Tsang