SSH Jump Host SEM Agente Encaminhando

1

Embora seja uma pergunta simples, pesquisei por dias sem sucesso.

M = My machine 
J = Jump Host
S = Server

Jump Host has my public key on authorized_keys.
Server has J's public key on authorized_keys.

Allowed connections (due to key authentication):
M -> J
J -> S

Como é possível para mim ssh em S da minha máquina?

Minha configuração atual é:

host jump
  user root
  HostName x.x.x.x

host server
  user root
  HostName x.x.x.x
  port 22
  ForwardAgent no
  ProxyCommand ssh jump -W %h:%p

Não funciona enquanto tenta fazer o login com a chave de M.

Aqui está o log ssh

debug1: Host 'x.x.x.x' is known and matches the ECDSA host key.
debug1: Found key in /Users/xxxxx/.ssh/known_hosts:1542
...
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/xxxxx/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/xxxxx/.ssh/id_dsa
debug1: Trying private key: /Users/xxxxx/.ssh/id_ecdsa
debug1: Trying private key: /Users/xxxxx/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
Killed by signal 1.
    
por Carlos Miguel Fernando 19.01.2017 / 19:26

2 respostas

1

The problem is that it's trying to use my key (M) to authenticate in S when it's supposed to use J's key. I cannot specify the key to use with IdentityFile give it's on J and not on my machine.

Bem, esse é o seu problema. A conexão com o host de salto e o destino final é iniciada diretamente do seu cliente nesta configuração. Seu cliente deve ter a chave correta para ambos os sistemas.

O ssh jump -W %h:%p no comando proxy inicia uma sessão ssh no seu host de salto, mas não cria um shell, apenas cria um túnel diretamente para o host de destino. Então seu cliente faz um ssh para o túnel. Em nenhum momento é iniciado um shell no host de salto que permite que você acesse quaisquer chaves armazenadas nesse host intermediário nesse tipo de configuração. Brincando com o encaminhamento não faz nada. Nenhum encaminhamento é usado para iniciar a conexão.

    
por 19.01.2017 / 20:20
1

Você não faz login no firewall, que é um dispositivo de rede que restringe os pacotes. É basicamente invisível neste cenário. Ele tem que ser configurado para permitir que seus pacotes cheguem ao seu servidor host basculante (jumphost), que é a porta 22 e, provavelmente, portas de alto alcance.

Você faz o login diretamente no servidor, portanto, ele precisa ser configurado para permitir isso. Teste isso de outra máquina na mesma rede. A partir deste host bastião, você pode fazer login em máquinas que ele está protegendo em suas sub-redes privadas.

Atualizar com base em mais informações Você não precisa da chave do host bastion / jump no servidor alvo, você precisa da sua chave. Não é o bastião tentando acessar o servidor, é um usuário, ou seja, você.

Dê um passo atrás. Certifique-se de que você pode acessar o servidor de destino usando ssh de outro servidor na mesma sub-rede, usando sua chave. Então tente do host bastião.

    
por 19.01.2017 / 19:34