Si realmente no desea utilizar un par de claves pública / privada, puede escribir un expectscript para ingresar la contraseña automáticamente según la dirección de destino.
Editar: lo que quiero decir es que puede tener una secuencia de comandos que, por un lado, utiliza expectpara ingresar la contraseña y, por otro lado, lee la contraseña de un usuario y host desde un archivo de configuración. Por ejemplo, el siguiente script de Python funcionará para el escenario de día soleado:
#!/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 sería el siguiente:
[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 debería ser mucho más compleja para manejar todos los posibles errores y mensajes de preguntas de ssh y todas las URL posibles (en el ejemplo se supone que será algo así user@host, pero la parte del usuario no es ' t utilizado la mayoría de las veces), pero la idea básica seguiría siendo la misma. Con respecto al archivo de configuración, puede usar un archivo de configuración diferente o usar .ssh/configy escribir su propio código para analizar ese archivo y obtener la contraseña para un usuario y host determinados.