捕获密码的问题:在远程设备上提示

时间:2019-06-20 08:52:18

标签: python fabric

Fabric没看到密码:提示通过SSH的远程设备(Aruba Mobility Master)。

我编写的脚本是使用fabric2和Python3登录到远程网络设备,并运行命令将文件从该设备SCP传输到另一设备。运行SCP命令后,设备会要求输入密码。在普通的SSH客户端上运行时,此提示是可见的,但在使用结构运行时,则不可见。

我已经用pty = False和pty = True进行了测试

脚本也不会像等待输入一样挂起。只是继续,SCP失败并输入了错误的密码。

密码提示有点特殊,它会回显带有星号(*)的字符,而不是完全不回显任何内容。

网络设备不提供普通的bash shell。相反,它是供应商特定的外壳(Aruba / HPE)。该设备是“ Aruba Mobility Master”

from invoke import Responder

scppass = Responder(
    pattern=r'Password:',
    response='MyPassword\n',
)

connect_kwargs = {"password": "LoginPassword"}
c = Connection(host="1.2.3.4", user="username", connect_kwargs=connect_kwargs)

# Have tried with pty=False and pty=True
c.run("copy flash: configbackup.tar.gz scp: 2.3.4.5 username /PATH/configbackup.tar.gz", pty=True, watchers=[scppass])

这是从交互式SSH会话运行时的外观

Password:*********************


Secure file copy:
Press 'q' to abort.
....
File uploaded successfully

这是面料的输出

Secure file copy:
Press 'q' to abort.
............
Error copying file:
Permission denied: wrong username or password

也尝试过

ssh username@1.2.3.4 "copy flash: nothng scp: 2.3.4.5 user /something/asd" >out 2>err

ssh -t username@1.2.3.4 "copy flash: nothng scp: 2.3.4.5 user /something/asd" >out 2>err

这两个文件均未在stdout或stderr文件中捕获“ Password:”。

0 个答案:

没有答案
相关问题