这里我提供了脚本的完整细节:
我在HUB1中运行我的脚本。
首先,向用户询问用户名,密码,文件名,路径等凭据。
示例Snipet:
try:
usrname = raw_input('Enter your credentials:')
regex = r'[x][A-Za-z]{6,6}'
sigMatch = re.match(regex,usrname) --> username & pattern matching
sigMatch.group()
except AttributeError:
print "Kindly enter your name"
raise AttributeError
[...]
我立即从HUB1做SSH,如下所示:
ssh.load_system_host_keys()
ssh.connect('100.103.113.15', username='', password='')
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("cd /home/dir;ls -lrt")
通过从HUB1进行ssh,我可以虚拟登录HUB2并复制文件 所需目录[我,虽然我通过SSH在H1中运行我的脚本我可以通过 控制到HUB2并在H2中执行命令并且能够做到所需 操作
现在,挑战已经消失:
现在我需要将相同的文件从HUB2复制到HUB3 [我从中复制过来 Hub1]通过在Hub1中运行相同的脚本它自己。所以,我在SSH中执行scp如下:
ssh_stdin,ssh_stdout, ssh_stderr = ssh.exec_command("scp %s
usrname@112.186.104.7:/home/dir/ABCdir" %(imageName))
这里必须提示用户输入密码,如请输入您的密码 密码,但上面的命令是将提示语句指向 ssh_stderr 渠道。因此,我无法成功复制文件 在ssh.exec_command(“”)中执行scp。
要记住的要点:
我不想在H1中运行两个脚本,在H2中运行另一个脚本(对于scp)--->排除
我的目的是从h1复制文件 - > h2 - > h3彼此独立。
我遵循了上述程序,除此之外,我尝试了几种方法
添加unknown_host_key [通过执行此操作,输入&错误的频道已打开,但不会发生文件传输]
通过在HUB2中调用另一个脚本[我能够调用不需要用户输入的脚本,但我的目的是提供用户输入。所以不能在这里触发另一个脚本]。
我要求提供消除上述问题的可能方法。