Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Paramiko从SSH服务器获取预登录横幅,而不进行身份验证_Python_Ssh_Python 3.6_Paramiko_Banner - Fatal编程技术网

Python 使用Paramiko从SSH服务器获取预登录横幅,而不进行身份验证

Python 使用Paramiko从SSH服务器获取预登录横幅,而不进行身份验证,python,ssh,python-3.6,paramiko,banner,Python,Ssh,Python 3.6,Paramiko,Banner,我正在尝试使用下面的代码从服务器获取横幅。但结果总是说“无”,甚至思想旗帜也存在。我尝试过Python 2和3、Paramiko 2.4和2.7.0,结果与“无”相同。 有人能纠正/帮助我吗 该准则基于: 使用banner指令在sshd\u config中配置横幅 # !/usr/bin/python import paramiko def grab_banner(ip_address, port): client = paramiko.SSHClient() client

我正在尝试使用下面的代码从服务器获取横幅。但结果总是说“无”,甚至思想旗帜也存在。我尝试过Python 2和3、Paramiko 2.4和2.7.0,结果与“无”相同。 有人能纠正/帮助我吗

该准则基于:

使用
banner
指令在
sshd\u config
中配置横幅

# !/usr/bin/python

import paramiko

def grab_banner(ip_address, port):
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        client.connect(ip_address, port=port, username='username',
                       password='bad-password-on-purpose')
    except:
        return client._transport.get_banner()


if __name__ == '__main__':
    print grab_banner('192.168.1.26', 22)

谢谢

总的来说,我相信您的代码应该可以工作。但是在密码验证失败后,Paramiko徒劳地尝试了各种其他验证方法,进一步的尝试将丢弃该横幅(在我看来,它就像Paramiko中的一个bug)

通过在以下位置设置
查找\u键
允许\u代理
来防止这种情况:


下面是一个针对Paramiko的修复程序,它允许在不使用上述解决方法的情况下检索横幅:

谢谢您的回答!它工作得很好。我有我的“横幅抓取”脚本最初工作,但它只是。。。停止。。。有一天。您的解决方案工作正常。希望他们能合并这个请求!
try:
  client.connect(ip_address, port=port, username='username',
                 password='bad-password-on-purpose',
                 look_for_keys=False, allow_agent=False)
except:
  return client._transport.get_banner()