Create SSH Tunnel não está funcionando com proxy

0

Eu tenho acesso a um servidor usando o SSH usando a linha de comando:

ssh my-server

com este arquivo .ssh / config:

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

 Host my-server
  HostName 1.2.3.4
  User user
  ProxyJump some.proxy.com
  IdentityFile ~/.ssh/id_rsa

No entanto, se eu quiser criar um túnel com o servidor para acessá-lo via navegador, por exemplo, usando:

sudo ssh -L 80:my-server:80 my-server

Eu recebo o seguinte erro:

ssh: Could not resolve hostname my-server: nodename nor servname provided, or not known

Eu acho que usar o ssh dessa maneira ignora o proxy que está configurado no arquivo .ssh/config . Isso está correto ou estou faltando alguma outra coisa? Há algo mais que eu possa tentar?

    
por Peter 04.09.2018 / 13:27

1 resposta

0

Após perseguir alguns comentários negativos nos comentários, tenho certeza de que o problema real não tem nada a ver com ProxyJump ou -L tunnel; é por causa de sudo . Executar sudo ssh executará o comando ssh sob o ID do usuário root e, portanto, procurará .ssh / config no diretório inicial da conta raiz, em vez da sua. E ~ root / .ssh / config não possui uma entrada para my-server (se existir).

Você deve conseguir consertar isso adicionando -F ~/.ssh/config às opções ssh , para dizer é para usar o seu arquivo de configuração ao invés do root. Observe que a parte ~/ será expandida pelo shell antes de ser passada para sudo (e, em seguida, ssh ) como parâmetro, portanto, o shell expandirá para seu diretório inicial em vez de da raiz.

No entanto, eu não testei isso, mas acho que as entradas IdentityFile ~/.ssh/id_rsa no seu arquivo de configuração serão quebradas, porque elas serão resolvidas no diretório ~ / .ssh do root. Talvez seja necessário fornecer o caminho explícito para seu diretório pessoal, em vez do atalho ~ . Outra possibilidade seria adicionar -i ~/.ssh/id_rsa à linha de comando, para que novamente ele seja expandido pelo shell sendo executado como você.

Além disso, é provável que você receba avisos sobre hosts desconhecidos, etc., porque você estará usando o arquivo ~ / .ssh / known_hosts do root.

    
por 06.09.2018 / 02:14