como configurar temporariamente o servidor proxy SSH

1

Frequentemente estou em uma rede que, por alguma razão tola, bloqueia a porta de destino TCP 22. Não parece prático usar uma VPN completa apenas para superar esse problema, então às vezes eu estou usando o proxy SSH (via ProxyCommand ), às vezes uma pseudo-VPN usando uma combinação de ssh -w any:any -p 443 e algumas linhas de comando locais e remotas ip .

Estou usando o SSH como o back-end do Git, por isso não posso alterar diretamente a linha de comando ssh .

O que eu estou procurando é uma maneira limpa e agradável de temporariamente (por exemplo, através de um simples script ou variável de ambiente) entrar em contato com servidores Git como GitHub e Fedora distgit através de um servidor com SSH acessível via porta TCP 443. t insistir em ProxyCommand ou -w como os métodos.

    
por Pavel Šimerda 12.08.2016 / 13:25

2 respostas

2

Você pode armazenar os ProxyCommand e Tunnel com TunnelDevice no seu ssh_config . O Git respeita sua configuração ssh que você define em ~/.ssh/config .

Além disso, no Fedora 25 (openssh-7.3, ou copr ), você pode use a diretiva Include para modificar sua configuração usando um único caractere em sua configuração, algo como:

# ~/.ssh/config
#Include ~/.ssh/config_proxy
Host github.com
  # some standard configuration
# ~/.ssh/config_proxy
Host github.com
  ProxyCommand something

Você pode certamente fazer o script dessa alteração com o simples sed , se desejar.

    
por 12.08.2016 / 13:42
2

Com versões razoavelmente recentes do cliente OpenSSH, você pode colocar configurações condicionais em .ssh/config . Assim, você pode definir a linha ProxyCommand dentro de uma sub-rotina condicional. Além das condições baseadas no alvo que não são úteis aqui, você pode ter uma condição que consiste em executar um comando externo. Use um comando para detectar se você está na rede em que o proxy é necessário, por exemplo, verificando sua concessão de DHCP.

Match exec "awk /var/lib/dhcp/dhclient.eth0.leases '$2 == \"domain-name-servers\" {nsip=$3} END {exit(nsip == \"192.0\.2\.1\")}'"
    ProxyCommand …
    
por 14.08.2016 / 02:05