Faça um túnel do trabalho para casa e faça um túnel que permita a conexão de casa.
A está no trabalho, B está em casa. Você deseja se conectar de B a A, mas o firewall o bloqueia.
Em vez disso, conecte-se de A a B, criando um túnel de volta ao servidor. Isso pressupõe que você tenha um servidor ssh em execução em casa e tenha aberto a porta 22 em seu roteador. Se a sua máquina doméstica for Mac ou Linux, você provavelmente a executará; se windows, instale o cygwin e configure o sshd (link) .
No trabalho, coloque isso no seu arquivo .ssh / config:
host home
hostname B # replace with your FQDN or IP
user homeuser # user at home
LocalForward 2222 localhost:22
Agora, quando você executar 'ssh home', a porta 2222 será um túnel para o servidor ssh da sua máquina local. Eu acho que se você deixar essa sessão em uma janela, a conexão pode ficar suspensa ocasionalmente, ou a filewall pode fechá-la depois de um tempo. Eu prefiro usar um comando como
while true; do ssh -n home sleep 600; sleep 3000; done &
Isso iniciará um túnel que dura dez minutos, fecha e inicia outro na próxima hora. Se houver conexões em túnel, quando o período de suspensão terminar, o comando ssh aguardará a conclusão.
(dormir 3000 não é necessário; você pode mantê-lo aberto o tempo todo, é apenas algumas empresas não gostam de ver conexões persistentes freqüentes ou de longa duração para máquinas externas)
Agora, no lado da casa, coloque isso no seu arquivo .ssh / config:
host worktunnel
hostname localhost
user workuser
port 2222
UserKnownHostsFile ~/.ssh/known_hosts.worktunnel
Salve e, quando o túnel estiver em sua máquina, você pode simplesmente digitar
ssh worktunnel
e você está dentro.
A linha UserKnownHostsFile não é necessária, mas impede avisos quando você usa
vários túneis com portas diferentes para hosts diferentes, portanto, a entrada localhost no arquivo known_hosts padrão não corresponderá a todos os hosts.
Você pode adicionar várias linhas LocalForward ao arquivo de configuração em A; por exemplo.
LocalForward 2223 server2: 22 # outro servidor com ssh
LocalForward 5900 qa: 5900 # vnc
LocalForward 3389 troca: 3389 # área de trabalho remota
LocalForward 3128 internalProxy: 3128 # para navegar por hosts internos
# etc.
(Para conexões X de tunelamento, use 'ssh -X', não LocalForward.)
Nenhuma alteração dos números de porta do servidor ssh é necessária aqui.
Observe que esse tipo de acesso remoto pode ser contra as políticas da sua empresa. Alguns locais examinam ou auditam esse tipo de conexão e podem lhe dar um aviso sobre isso. Você pode executar o comando do túnel por cinco minutos, dormir por 55; ou ter um script na máquina doméstica que sai imediatamente quando você não precisa do túnel. Logmein é outra solução gratuita que funciona bem para permitir acesso remoto a desktops (windows, mac) por trás de firewalls