359 votos

Cómo automatizar SSH inicio de sesión con contraseña?

Cómo automatizar SSH inicio de sesión con contraseña? Estoy configurando mi prueba de VM, tan pesada que la seguridad no es considerado. SSH elegido para aceptables de seguridad con un mínimo de configuración.

ex)

echo password | ssh id@server

Esto no funciona.

Recuerdo que me hice con algunos trucos que alguien me guió, pero no puedo recordar ahora, el truco que utiliza...

525voto

Graham Clark Puntos 9038
$ sudo apt-get install sshpass
$ sshpass -p your_password ssh user@hostname

331voto

Cakemox Puntos 10650

No utilice una contraseña. Generar un passphraseless clave SSH y empujar a su VM.

Si usted ya tiene una clave SSH, puede omitir este paso... Simplemente pulse Intro para la clave y ambas frases:

$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.

Copia de las llaves para el servidor de destino:

$ ssh-copy-id id@server
id@server's password: 

Ahora intente iniciar sesión en la máquina, con ssh 'id@server', y comprobar en:

.ssh/authorized_keys

para asegurarse de que no hemos añadido extra de teclas que usted no esperaba.

Por último, compruebe el registro de en...

$ ssh id@server

id@server:~$ 

Puede que también desee considerar el uso de ssh-agent si usted quiere tratar de mantener sus claves protegido con una contraseña.

61voto

lzap Puntos 718

Fácil respuesta en tres sencillos pasos

Generar un par de claves rsa:

# ssh-keygen

luego se copia en el servidor con un simple comando:

# ssh-copy-id hostname

ahora puede acceder sin contraseña:

# ssh hostname

32voto

ooshro Puntos 6897

El uso de esperar:

#!/usr/bin/expect -f
#  ./ssh.exp password 192.168.1.11 id
set pass [lrange $argv 0 0]
set server [lrange $argv 1 1]
set name [lrange $argv 2 2]

spawn ssh $name@$server
match_max 100000
expect "*?assword:*"
send -- "$pass\r"
send -- "\r"
interact

Ejemplo:

# ./1.ex password localhost ooshro
spawn ssh ooshro@localhost
ooshro@localhost's password: 
Linux ubuntu-1010-server-01 2.6.35-25-generic-pae #44-Ubuntu SMP Fri Jan 21 19:01:46 UTC 2011 i686 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/
Last login: Tue Mar  1 12:41:12 2011 from localhost

9voto

MagicKat Puntos 5192

Asegúrese de que usted no desea utilizar las claves SSH en lugar de las contraseñas? De esa manera es segura y automática.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: