如果要求输入密码,基于Python密钥的身份验证将失败

时间:2019-12-13 18:11:31

标签: python ssh scp

我实际上正在寻找以下情况的输入。

  • 我在服务器(例如192.168.1.1,192.168.1.2)和客户端之间具有基于设置密钥的身份验证(公用密钥和专用密钥),因此我无需使用任何密码即可访问这些服务器。
  • 未在服务器192.168.1.3和我的客户端之间设置基于密钥的身份验证 (假设从我的客户端可以访问所有3台服务器-客户端可以ping通所有2台服务器)

在Python中,我的列表是

servers = ['192.168.1.1','192.168.1.2','192.168.1.3']

我正在寻找一种方法,使客户端在尝试访问192.168.1.3时自动收到消息“基于密钥的设置不正确”,而不是询问密码。

下面是我的相同的python代码

for server in servers:
    if waitForPing(ip=server) == True:
        print 'Ping to Server ', server, 'is successful'
        p = subprocess.Popen(['scp', ', 'some_user@'+ server +':/home/some_user']).wait()
        print 'File Transfer successful for ' , server 

输出为

Ping to Server 192.168.1.1 is successful
File Transfer successful for 192.168.1.1
Ping to Server 192.168.1.2 is successful
File Transfer successful for 192.168.1.2
Ping to Server 192.168.1.3 is successful
Ask for password to login 192.168.1.3 > _

有没有办法让我失败,而不是控制台要求输入密码。任何输入都会有帮助。

我正在使用Python 2.6,并且我不想使用任何Python API(例如paramiko)

谢谢!

0 个答案:

没有答案