2012-08-25 14 views
78

Necesito ejecutar ssh desde línea de comandos de Windows proporcionando la contraseña de una manera no interactiva. Podría poner en práctica la autenticación basada en una clave y es capaz de ejecutar los comandos ssh al igual queEjecutar ssh con autenticación de contraseña mediante el indicador de comando de Windows

ssh <user>@<host> <command> 

¿Hay alguna comandos como

ssh <user>@<host> -P <password> <command> 

enter image description here

No sé si es factible. Sin embargo, puede haber algo de trabajo para el mismo. Tírame algunas ideas para lograr lo mismo.

+2

Usar la autenticación basada en claves es una idea mucho mejor. –

+0

Sí, también tengo un requisito para la autenticación basada en contraseña. – Balachandar

+9

@GregInozemtsev mientras que el caso, a veces surge la necesidad de un script rápido y sucio para hacer algo como esto, especialmente en una prueba u otro entorno donde no se requiere seguridad pura. – TheJosh

Respuesta

10

El plink de PuTTY tiene un command-line argument for a password. Se han realizado algunas otras sugerencias en the answers to this question: usando Expect (que está disponible para Windows) o escribiendo un iniciador en Python con Paramiko.

+0

@Birla plink es específicamente un programa de Windows. Pexpect y Paramiko están disponibles en Windows. No veo el problema –

158

La utilidad sshpass está diseñada exactamente para esto. En primer lugar, instale sshpass escribiendo este comando:

sudo apt-get install sshpass 

Luego agregar el prefijo a su comando ssh/scp con

sshpass -p '<password>' <ssh/scp command> 

Este programa es más fácil de instalar al utilizar Linux.

El usuario debería considerar usar la autenticación de clave pública más segura de SSH (con el comando ssh).

+8

Funciona también para rsync – TheJosh

+0

No estoy del todo seguro de cómo una utilidad de Linux (que se puede hacer para Cygwin, pero ese es un nivel completamente diferente de administración de sistemas) obtiene 64 votos ... y Plink que hace exactamente lo que OP preguntó y no requiere ningún trabajo adicional (y probablemente ya esté instalado en su sistema en primer lugar) obtiene 1. Tiendo a confiar en Stack en estas cosas, así que si hay una buena razón para pasar por aros molestos y en ocasiones enloquecedores de hacer ... er ... estoy realmente curioso por qué se puso tanto amor. – OhkaBaka

+14

Porque el título no incluye "ventanas" y aparece en la parte superior de la lista cuando se busca esto para Linux/Unix/Mac. Por lo tanto, responder esta pregunta aquí ahorra tiempo. – Frobbit

24

¿Qué tal este script esperado?

#!/usr/bin/expect -f 
spawn ssh [email protected] 
expect -exact "[email protected]'s password: " 
send -- "mypassword\r" 
interact 
+0

¡Dice que no tengo el script esperado –

+0

'expect' es notoriamente subestimado! –

Cuestiones relacionadas