import paramiko # 配置私人密钥文件位置 private = paramiko.RSAKey.from_private_key_file('id_rsa') # 实例化SSHClient client = paramiko.SSHClient() # 自动添加策略,保存服务器的主机名和密钥信息,如果不添加,那么不再本地know_hosts文件中记录的主机将无法连接 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接SSH服务端,以用户名和密码进行认证 client.connect(hostname='42.186.135.122', port=32200, username='xxxxxx', pkey=private) #建立sftp并上传文件 sftp=client.open_sftp() sftp.put('./test.sh', '/home/xxxx/test.sh') sftp.close() # 打开一个Channel并执行命令 stdin, stdout, stderr = client.exec_command('bash test.sh') # stdout 为正确输出,stderr为错误输出,同时是有1个变量有值 # 打印执行结果 print(stdout.read().decode('utf-8')) # 关闭SSHClient client.close()