Linux ssh sem senha do script system (root)

0

Qual é a maneira mais fácil de ter um script de sistema (executando como root) executar comandos remotos em ssh?

Eu escrevi alguns scripts que executam comandos remotamente via ssh, e eles funcionam muito bem quando eu os executo como eu, já que configurei o ssh-agent e as chaves para login sem senha. Eu gostaria de chamá-los quando meu laptop se encaixar e desencaixar. Tive êxito na execução de scripts arbitrários ao encaixar / desencaixar, mas como os scripts de eventos da ACPI são executados como raiz, a tentativa de executar meu script ssh falha durante a autenticação.

Eu tentei usar o sudo com os sinalizadores -u e -i para simular a execução do script como meu usuário, por exemplo:

sudo -u redmoskito -i /home/redmoskito/bin/remote_command

que encontra minha chave privada com sucesso e tenta usá-la, mas as credenciais do agente ssh ainda estão faltando, por isso ainda precisa da minha frase secreta.

    
por redmoskito 14.06.2010 / 19:57

2 respostas

1

Nada de errado com a parte do sudo. Para pegar um agente ssh existente, veja estas respostas: Compartilhando o mesmo 'ssh-agent' entre várias sessões de login

    
por 14.06.2010 / 20:47
0

Você tentou usar o su em vez do sudo?

su - redmoskito -c "/ home / redmoskito / bin / remote_command"

OR

edite seu script para usar: ssh -l redmoskito (host) (comando) (assumindo que redmoskito é o mesmo nome de usuário na máquina remota) Em seguida, no diretório inicial do redmoskito da máquina remota $ HOME / .ssh / authorized_keys, insira o conteúdo da raiz da máquina local $ HOME.ssh / id_rsa.pub depois de criar uma senha em branco como root na máquina local com ssh-keygen -t rsa Certifique-se de que $ HOME ou $ HOME / .ssh ou qualquer um dos arquivos em $ HOME / .ssh não sejam de grupo ou outros graváveis se o seu arquivo sshd_config tiver StrictModes = yes

Se nada disso funcionar, me avise. Vou duplicar o problema nas minhas máquinas.

    
por 28.06.2010 / 07:41