Como executo um script de shell remoto através de SSH e peço por senhas por comandos que o requerem nesse script?

4

Eu quero fazer algo assim

ssh [email protected] ./remote_script.sh

Conteúdo do remote_script.sh

#!/bin/bash
hg pull

Este exemplo é muito mais simples do que o que estou realmente fazendo. Eu sei que posso passar comandos shell diretamente sobre o ssh, mas suponho que eu queira executar um script remoto. Também sei que o Mercurial tem ganchos, mas ignore isso também, estou usando apenas o Mercurial como exemplo aqui por brevidade.

Isso é o que eu espero que aconteça, uma solicitação de senha para o usuário:

[email protected] password: 

Esta é a saída:

ssh [email protected] ./remote_script.sh
remote: Permission denied, please try again.
remote: Permission denied, please try again.
remote: Permission denied (publickey,password).
abort: no suitable response from remote hg!

A sessão de shell remota parece estar alimentando algo com os prompts de entrada de senha e falhando após três tentativas automatizadas. Eu realmente gostaria que o prompt para chegar a minha sessão de shell local. Talvez isso não seja possível.

Eu não quero dar a autenticação de chave do servidor remoto para o repositório, eu prefiro que o usuário seja solicitado a cada vez. Existe alguma maneira de fazer isso?

    
por Matthew Chambers 04.05.2012 / 17:43

1 resposta

9

É difícil descobrir exatamente o que está acontecendo neste post. O prompt da senha está sendo impresso pelo comando hg (não estou familiarizado com a hg)?

Eu recomendo que você tente adicionar a opção -t ao ssh:

ssh -t [email protected] ./remote_script.sh
    
por 04.05.2012 / 18:48