1. Generate needed ssh key
mkdir ~/.ssh chmod 700 ~/.ssh ssh-keygen -t rsa -b 4096 -C "<user>@<host> server key" -f ~/.ssh/<user>_<host>.key
2. Install ssh key on ssh server
ssh-copy-id -i ~/.ssh/<user>_<host>.key <user>@<host>
3. Create ~/.ssh/config file
cat >> ~/.ssh/config <<EOL Host * ServerAliveInterval 15 ServerAliveCountMax 6 Compression yes Host <host> HostName <host-fqdn> Port 22 User <user> IdentityFile ~/.ssh/<user>_<host>.key IdentitiesOnly yes ForwardAgent yes # this sets up a socks5 proxy DynamicForward localhost:1080 # this sets up a local port to forward traffic to a remote host and port LocalForward 8080 <some-remote-host-fqdn>:80 # this sets up a remote git server accessible by ssh proxy above #Host <remote-git-server> # HostName <remote-git-server> # ProxyCommand ssh <host> -W %h:%p # IdentityFile ~/.ssh/<remote-git-server>.key # User <remote-git-server-user> EOL
chmod 600 ~/.ssh/*