pxssh open installing como python ssh

python - open - ¿Cómo conectarse al servidor remoto con paramiko sin una contraseña?



pxssh (1)

Estoy escribiendo un script en Python que necesita conectarse a un remote_server con SSH y mover un file desde remote_server a host_server . Necesito hacerlo sin una contraseña, ya que necesita funcionar para cualquier servidor remoto y cualquier usuario del servidor host.

Mi código:

#get IP and username for remote access IP = input("Enter host_server IP: ").split() username = input("Enter username: ").split() #password = ??????? #create a file on host_server for file file_a = open(date+"file.txt", "a") #ignore the date variable file = str(date+"file.txt") #move file to host_server import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(IP[0], username = user[0], password = password[0]) print "Connected to server." transfer = ssh.open_sftp() transfer.get("file.txt", file) transfer.close() print "Transfer completed."

Pregunta: ¿Existe alguna forma de configurar una clave pública dentro del script sin acceder a un terminal de línea de comando, de modo que cada vez que se ejecute el script, configure el acceso sin contraseña con SSH?


ssh.connect() toma una palabra clave argumento pkey que puede usar para especificar su archivo privado.

#get IP and username for remote access IP = input("Enter host_server IP: ").split() username = input("Enter username: ").split() #create a file on host_server for file file_a = open(date+"file.txt", "a") #ignore the date variable file = str(date+"file.txt") import paramiko import os privatekeyfile = os.path.expanduser(''~/.ssh/id_rsa'') mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile) ssh.connect(IP[0], username = user[0], pkey = mykey)