ssh login sem senha não funciona usando o comando proxy

4

Eu tenho 2 servidores. Eu posso conectar ao servidor B usando apenas o servidor A. No meu arquivo ~/.ssh/config :

Host serverB
  Hostname serverb
  User root
  ForwardAgent yes
  Port 22
  ProxyCommand ssh user@serverA nc %h %p

Quando eu faço o login no serverA e digito ssh root@serverB Ele se conecta sem pedir senha, mas quando digito ssh ServerB na minha máquina local, ele pede a senha do ServerB. Por quê?

    
por hpn 18.07.2013 / 18:32

3 respostas

2

ProxyCommand fornece apenas um túnel para canalizar a conexão ssh externa.

Quando você faz ssh serverB de serverA , provavelmente está usando uma chave em sua conta em serverA .

Quando você faz ssh serverB da sua máquina cliente, o fato de você estar se conectando através do comando nc iniciado em serverA não vai lhe dar magicamente acesso às chaves no servidorA.

Você precisará adicionar as chaves do servidorA ao seu agente cliente.

Por exemplo:

ssh-add <(ssh serverA 'cat .ssh/id_rsa')

Para adicionar a chave em .ssh/id_rsa no serverA (sintaxe ksh93 / bash / zsh acima).

    
por 19.07.2013 / 11:01
2

Poucas coisas:

  1. Você tem certeza de que está solicitando a senha do servidorB? Pode ser que esteja pedindo pelo serverA
  2. Você não precisa encaminhar seu agente - você será handshaking diretamente com serverB neste caso - ele não será serverA que é handshaking com serverB
  3. Você não precisa adicionar a chave do serverA ao seu cliente - mais uma vez você estará falando diretamente ao serverB - apenas através do serverA - então não pode ver o ponto em fazer isso - e também é um risco à segurança.
  4. O que acontece quando você ssh serverA - pede uma senha? se isso acontecer - você já pensou em instalar sua chave pública em authorized_hosts do serverA? ssh-copy-id serverA ?
  5. executar com saída -vvv e pastebin / filebin / post
por 19.07.2013 / 12:01
1

Eu não tenho uma resposta completa, apenas algumas coisas para verificar. Verifique as permissões dos diretórios iniciais do usuário unix nas duas caixas. Verifique as permissões do diretório para $ HOME, para $ HOME / .ssh e todos os arquivos em .ssh nas duas caixas. Verifique as versões do ssh. Compare os arquivos de configuração ssh para ambas as caixas também.

Mas isso já aconteceu comigo muitas vezes no passado. As duas coisas que causaram isso?
1. permissões incorretas nos diretórios. 2. Uma chave de servidor inválida em $ HOME / .ssh /

    
por 18.07.2013 / 20:02

Tags