无法在SSH中执行SCP

时间:2017-06-14 06:03:11

标签: python ssh scp

这里我提供了脚本的完整细节:

我在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。

要记住的要点:

  1. 我不想在H1中运行两个脚本,在H2中运行另一个脚本(对于scp)--->排除

  2. 我的目的是从h1复制文件 - > h2 - > h3彼此独立。

  3. 我遵循了上述程序,除此之外,我尝试了几种方法

    1. 添加unknown_host_key [通过执行此操作,输入&错误的频道已打开,但不会发生文件传输]

    2. 通过在HUB2中调用另一个脚本[我能够调用不需要用户输入的脚本,但我的目的是提供用户输入。所以不能在这里触发另一个脚本]。

    3. 我要求提供消除上述问题的可能方法。

0 个答案:

没有答案