Autenticação SSH funcionando a menos que seja executado a partir do script?

2

Configurei meu servidor para permitir a autenticação de chave / par seguindo instruções semelhantes às encontradas em este post .

Tanto quanto eu posso dizer que está funcionando corretamente. Se eu fizer o seguinte, por exemplo, funciona corretamente:

ssh [email protected]

NÃO será solicitado uma senha. É isso que quero que aconteça. No entanto, se eu escrever um pequeno script bash como este:

#!/bin/bash -x
ssh [email protected]

e execute com:

sudo ./mytestscript.sh

... isso me perguntará:

[email protected]'s password:

O que estou fazendo de errado? Eu preciso ser capaz de entrar de dentro do meu script sem ser solicitado por uma senha!

    
por Aaron Wright 14.04.2010 / 22:19

1 resposta

6

Eu estou supondo que o script funciona bem se você executá-lo sem sudo . Se esse for o caso, então o seu problema é que o ssh está agora procurando pela chave pública no diretório inicial do root, ao invés do seu. Adicione uma opção -i ao seu comando ssh, especificando o caminho para a chave que você configurou, ou use a chave pública do root.

Se você estiver usando ssh-agent para armazenar uma versão descriptografada da chave em vez de usar uma chave sem senha, também será preciso editar /etc/sudoers e adicionar env_keep+="SSH_AUTH_SOCK SVN_SSH ao Defaults so ssh pode encontrar seu socket de autenticação.

    
por 14.04.2010 / 22:45