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()