76 votos

Se pueden establecer contraseñas .ssh/config para permitir el inicio de sesión automático?

Estoy usando ubuntu 11.10. Estoy usando ssh para conectarse a varios servidores a diario, así que me puse de sus parámetros en .ssh/config archivo; como esta :

Host Home
User netmoon
Port 22
HostName test.com

Es allí una manera de poner contraseñas en este archivo, para cada conexión? Así que cuando el servidor pide la contraseña, la terminal de poner a su paso y enviarlo al servidor.

Es porque a veces me pongo de pie lejos de la pc y cuando vuelvo y escriba la contraseña y presione entrar, dijo terminal de CONEXIÓN CERRADA.

  • No quiero usar la clave pública/privada en la pareja.

24voto

Scott Puntos 1

Si usted realmente no desea utilizar una llave publica/privada, usted puede escribir un expect secuencia de comandos para introducir la contraseña de forma automática dependiendo de la dirección de destino.

Edit: a Lo que me refiero es que usted puede tener una secuencia de comandos que, por un lado, los usos expect a introducir la contraseña para usted y, por otro lado, lee la contraseña para un usuario determinado y el host desde un archivo de configuración. Por ejemplo, la siguiente secuencia de comandos de python de trabajo para el día soleado escenario:

#!/usr/bin/python                                                                                                                        
import argparse
from ConfigParser import ConfigParser
import pexpect

def main(args):
    url = args.url
    user, host = url.split('@', 1)

    cfg_file = 'ssh.cfg'
    cfg = ConfigParser()
    cfg.read(cfg_file)
    passwd = cfg.get(user, host)

    child = pexpect.spawn('ssh {0}'.format(url))
    child.expect('password:')
    child.sendline(passwd)
    child.interact()

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Run ssh through pexpect')
    parser.add_argument('url')
    args = parser.parse_args()
    main(args)

y el formato del archivo de configuración quedaría de la siguiente manera:

[user_1]
host1 = passwd_1
host2 = passwd_2

[user_2]
host1 = passwd_1
host2 = passwd_2

Nota: Como se explicó, la secuencia de comandos de python tendría que ser mucho más complejo de manejar todos los posibles errores y se pregunta mensajes de ssh y todas las posibles direcciones url (en el ejemplo se supone que será algo como user@host, pero la parte de usuario no se usa la mayoría de las veces), pero la idea básica sería el mismo. Regading el archivo de configuración, puede utilizar un archivo de configuración diferente o utilizar .ssh/config y escribir su propio código para analizar ese archivo y obtener la contraseña de un usuario determinado y de acogida.

16voto

Andy Puntos 183

También hay sshpass programa para que. Cómo utilizar: sshpass -p MyPa55word ssh me@myservor.com

15voto

pele Puntos 9

No. Esto no es posible, me temo.

La única alternativa real es el uso de claves privadas, pero has dicho que no quieres (¿por qué no?).

4voto

david6 Puntos 9871

Yo uso una aplicación de VanDyke Software llamado SecureCRT.

http://www.vandyke.com/products/securecrt/

No es gratis, pero a un precio muy razonable. Yo lo he usado por años (que se ejecuta en Windows, o el uso de Vino) para acceso remoto, emulación de terminal, y (dispersa) gestión de la red. Finalmente lanzó un nativo de Linux versión de este a principios de 2011.

Tiene soporte para los complejos de configuración de inicio de sesión (o scripts), contraseñas guardadas (o certificados), con fichas de varias sesiones, etc.

Al inicio puedes elegir que destino remoto (y su protocolo) a partir de una lista estructurada (vista de árbol) de almacenado remoto (o locales) de las máquinas, o simplemente crear una conexión (que luego se almacena).

He encontrado particularmente útil para sitios remotos con autenticación avanzada, los puertos no estándar, o el firewall de acceso a la negociación.

Si usted está haciendo de acceso remoto de un montón (parte de su función principal), entonces esta aplicación te justificar su gasto en el primer mes de uso.

2voto

waltinator Puntos 7011

El comercio de la seguridad para la comodidad nunca termina bien...

Se puede utilizar ssh-copy-id de la openssh-client paquete?

De man ssh-copy-id:

ssh-copy-id is a script that uses ssh to log into a remote 
machine and append the indicated identity file to that 
machine's ~/.ssh/authorized_keys file.

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: