sshd_config servidor restringir puerto por permitir logingracetime configurar allowusers acceso ssh sudo

servidor - forma correcta de sudo sobre ssh



restringir acceso ssh por ip (6)

Tengo un script que ejecuta otro script a través de SSH en un servidor remoto usando sudo. Sin embargo, cuando escribo la contraseña, aparece en la terminal. (De lo contrario, funciona bien)

ssh user@server "sudo script"

¿Cuál es la forma correcta de hacerlo así que puedo escribir la contraseña para sudo sobre SSH sin que aparezca la contraseña mientras escribo?


Dependiendo de su uso, tuve éxito con lo siguiente:

ssh root@server "script"

Esto solicitará la contraseña de root y luego ejecutará el comando correctamente.


Enfrenté un problema,

user1@server1$ ssh -q user1@server2 sudo -u user2 rm -f /some/file/location.txt Output: sudo: no tty present and no askpass program specified

Entonces probé con

#1 vim /etc/sudoers Defaults:user1 !requiretty

no funcionó

#2 user1 ALL=(user2) NOPASSWD: ALL

eso funcionó correctamente!


La mejor manera es ssh -t user@server "sudo <scriptname>" , por ejemplo ssh -t user@server "sudo reboot" . Primero pedirá una contraseña al usuario y luego a la raíz (ya que estamos ejecutando la secuencia de comandos o el comando con privilegios de administrador).

Espero que haya ayudado y aclarado tu duda.


Otra forma es usar el -t para ssh :

ssh -t user@server "sudo script"

Ver http://linuxcommand.org/man_pages/ssh1.html :

-t Force pseudo-tty allocation. This can be used to execute arbi- trary screen-based programs on a remote machine, which can be very useful, e.g., when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.



Suponiendo que no quiere un aviso de contraseña :

ssh $HOST ''echo $PASSWORD | sudo -S $COMMMAND''

Ejemplo

ssh me@localhost ''echo secret | sudo -S echo hi'' # outputs ''hi''