SSH e redirecionamento

SSH e redirecionamento

Considere o seguinte comando:

ssh aristotle sudo /bin/sh < test.sh

Quero que o redirecionamento se aplique, /bin/shmas ele é consumido pelo sudo. Alguma idéia de como conseguir o que desejo?

Responder1

Por que não apenas copiar test.sh e invocá-lo?

scp test.sh aristotle:/tmp/test.$$.sh
ssh aristotle sudo /bin/sh /tmp/test.$$.sh
ssh aristotle rm /tmp/test.$$.sh

O $$ é o PID do processo na máquina local, dando algum grau de aleatoriedade para que seu arquivo não seja sobrecarregado.

Responder2

Redirecionamentoétrabalhando com ssh e sudo! Ele apenas interfere em qualquer caixa de diálogo de senha do ssh e/ou sudo.

Então OU você não usa redirecionamento, mas soluções alternativas como, por exemplo, copiar o script para a máquina de destino primeiro e depois executá-lo (como, por exemplo, @edoloughlinsugerido).

OU você configura o ssh e o sudo para não solicitar uma senha. Então funciona perfeitamente:

$ echo "hostname" | ssh -A orwell sudo /bin/sh
orwell

Existem milhares de tutoriais explicando como usar o ssh sem senha, então não explico essa parte. E quanto ao sudo, existem várias maneiras de usá-lo sem senha. @jtimbermansugeridopara permitir ao usuário em questão o sudo sem senha em geral (por meio do NOPASSWDrecurso do sudo, consultesudoers(5)).

Eu pessoalmente uso o módulo PAMagente pam-ssh. Ele permite que o sudo se autentique em um agente ssh encaminhado e só retorne à autenticação baseada em senha se nenhum agente ssh estiver disponível. No Debian e Ubuntu apenas

apt-get install pam-ssh-agent-auth

e, em seguida, configure conforme documentado empam_ssh_agent_auth(8).

Responder3

Tente desta forma:

ssh aristotle sudo /bin/sh -c "/bin/sh \\< test.sh"

Responder4

Usei ssh somehost sudo cat \< /etc/passwdcom algum sucesso; tente algo como:

ssh aristotle sudo /bin/sh \< test.sh

informação relacionada