SSH y redirección

SSH y redirección

Considere el siguiente comando:

ssh aristotle sudo /bin/sh < test.sh

Quiero que se aplique la redirección /bin/shpero sudo la consume. ¿Alguna idea sobre cómo lograr lo que quiero?

Respuesta1

¿Por qué no simplemente copiar test.sh y luego invocarlo?

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

El $$ es el PID del proceso en la máquina local, lo que proporciona cierto grado de aleatoriedad para que su archivo no se vea afectado.

Respuesta2

Redirecciónestrabajando con ssh y sudo! Solo interfiere con cualquier diálogo de contraseña de ssh y/o sudo.

Entonces, O NO usas la redirección, sino soluciones como, por ejemplo, copiar el script a la máquina de destino primero y luego ejecutarlo (como, por ejemplo, @edoloughlinsugirió).

O configura ssh y sudo para que no soliciten una contraseña. Entonces funciona de maravilla:

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

Hay miles de instrucciones que explican cómo usar ssh sin contraseña, así que no explico esa parte. Y en cuanto a sudo, hay varias formas de utilizarlo sin contraseña. @jtimbermansugiriópara permitir al usuario en cuestión sudo sin contraseña en general (a través de la función sudo NOPASSWD, consultesudoers(5)).

Yo personalmente uso el módulo PAM.pam-ssh-agente. Permite que sudo se autentique contra un agente ssh reenviado y solo recurre a la autenticación basada en contraseña si no hay ningún agente ssh disponible. En Debian y Ubuntu solo

apt-get install pam-ssh-agent-auth

y luego configurar como se documenta enpam_ssh_agent_auth(8).

Respuesta3

Pruebe de esta manera:

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

Respuesta4

Lo usé ssh somehost sudo cat \< /etc/passwdcon cierto éxito; prueba algo como:

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

información relacionada