在paramiko中使用用户名和密码通过sftp传输文件,不使用key文件。 import getpass import select import socket import traceback import paramiko def putfile(): #import interactive # setup logging paramiko.util.log_to_file('demo.log') username = username hostname = hostname port = 22 # now connect try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((hostname, port)) except Exception, e: print '*** Connect failed: ' + str(e) traceback.print_exc() sys.exit(1) t = paramiko.Transport(sock) try: t.start_client() except paramiko.SSHException: print '*** SSH negotiation failed.' sys.exit(1) keys = {} # check server's host key -- this is important. key = t.get_remote_server_key() # get username t.auth_password(username, password) sftp = paramiko.SFTPClient.from_transport(t) # dirlist on remote host d=datetime.date.today()-datetime.timedelta(1) sftp.put(localFile,serverFile) t.close() sftp.put是可以直接使用目录和文件名,如果有同名文件文件将覆盖