python脚本运行环境是windows系统,我使用paramiko 模块远程登录A 服务器(linux),然后使用rsync命令从A 服务器向B服务器(linux)进行同步文件,过程中需要交互输入B服务器密码,应该怎么去实现
使用ssh方式进行连接,我记得paraniko模块有一个SSHClient对象,再invoke_shell()方法实现
还有就是ssh生成密钥来替代密码,这样更加安全,ssh转换公私钥我有分享,你可以去我主页看看。
以下是具体代码示例
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('A服务器IP地址', username='用户名', password='密码')
# 执行rsync命令并交互输入B服务器密码
stdin, stdout, stderr = ssh.exec_command('rsync -avzP /path/to/local/file user@B服务器IP地址:/path/to/remote/directory')
stdin.write('B服务器密码\n')
stdin.flush()
print(stdout.read().decode())
ssh.close()