Sendo solicitado por senha

1

// Comece a editar

Devo observar agora que alterei um pouco mais, que tudo funciona como pretendido se eu usar a opção "-i identity_file" ao conectar de "Automation" e apontar para a chave privada na "Automation" .

// Fim da edição

Existem três sistemas envolvidos aqui.

1) Produção

2) Estação de trabalho

3) Automação

Os números 2 e 3 estão na mesma rede, o número 1 está em uma rede remota. # 3 não tem um monitor conectado, ele é gerenciado via SSH de # 2.

Agora, o # 2 tem chaves públicas / privadas disponíveis e pode se conectar ao # 1 e ao # 3 sem uma senha.

Eu preciso me conectar ao # 1 do # 3 da mesma maneira. Primeiro, tentei copiar os usos das chaves # 2 para # 1 em # 3. Fico com uma senha solicitada quando tento me conectar a # 1 de # 3. Eu usei ssh-keygen enquanto logado em # 3 e importei as chaves para # 1 assim como eu fiz quando configurar # 2 para se conectar a # 1. Ainda sou solicitado por uma senha.

Por que estou sendo solicitado a fornecer uma senha ao se conectar do número 3 e não do número 2?

A única diferença em que consigo pensar é que, ao conectar do # 3, já estou logado remotamente no # 3 de # 2.

    
por joebert 29.10.2009 / 18:40

2 respostas

1

Se você estiver usando o OpenSSH, é assim que você faz o que o Zoredache sugeriu:

Em machine-1 , inicie um agente SSH (se ainda não estiver em execução; o GNOME, por exemplo, inicia um automaticamente):

one$ eval $(ssh-agent)
Agent pid 

Carregue sua chave no agente: (novamente, o gnome-keyring do GNOME faz isso automaticamente; use ssh-add -l para listar todas as chaves.)

one$ ssh-add
Enter passphrase for /home/grawity/.ssh/id_rsa: ******

one$ ssh-add -l 4096 11:83:7a:39:74:9d:75:e6:90:35:34:23:f5:d7:6b:6a /home/grawity/.ssh/id_rsa

Conecte-se a machine-2 , com o encaminhamento de agentes ativado:

one$ ssh -A machine-2

Uma vez conectado, verifique se o encaminhamento do agente funciona:

two$ ssh-add -l
4096 11:83:7a:39:74:9d:75:e6:90:35:34:23:f5:d7:6b:6a /home/grawity/.ssh/id_rsa

E, se funcionar, conecte-se de machine-2 a machine-3 e, em seguida, volte a machine-1 :

two$ ssh -A machine-3

three$ ssh -A machine-1

one$ _

Se tudo funcionou, edite ~/.ssh/config e adicione:

Host machine-1 machine-2 machine-3
    AgentForwarding yes
    
por 29.10.2009 / 19:19
1

Sua pergunta inicial parecia estar perguntando sobre o acesso a vários sistemas um do outro usando o seu ssh e eu forneci a resposta sugerindo o ssh-agent (abaixo). Depois de ler seus comentários, entendo que você está tendo um problema diferente.

Em sua pergunta, você mencionou que copiou a chave privada e pública de sua estação de trabalho para outro computador para ser usada pelo serviço que está tentando automatizar. Esta é uma má ideia . As chaves SSH devem realmente identificar um único usuário ou um único serviço. As chaves privadas não devem ser compartilhadas entre você e uma conta de serviço em outro sistema. Você deveria ter criado um novo conjunto de chaves em seu servidor.

Eu acho que o motivo mais provável de você ter problemas para se conectar está relacionado a como você copiou as chaves da sua estação de trabalho para o outro sistema. O OpenSSH é muito exigente quanto à propriedade e permissão de chaves. A chave privada deve ser de propriedade do usuário que a utiliza, e deve ter permissões de 0600. Se a chave for legível por grupo / outro, o ssh será recuse-se a usá-lo. Se você fornecer a opção -v para ssh quando estiver tentando se conectar, verá uma reclamação sobre as permissões da chave.

Portanto, minha recomendação é que você gere um novo conjunto de chaves para a conta de serviço em seu host de automação e, em seguida, transfira a chave pública para o outro servidor.

Como parece que você confia nesses sistemas e todas as suas conexões estão sendo criadas inicialmente a partir da estação de trabalho, você pode simplesmente iniciar um SSH agente em sua estação de trabalho, adicione sua chave ao agenct e ative o Encaminhamento de Agente na configuração do cliente em todos os seus hosts.

    
por 29.10.2009 / 18:55