Python 使用Paramiko从SSH服务器获取预登录横幅,而不进行身份验证
我正在尝试使用下面的代码从服务器获取横幅。但结果总是说“无”,甚至思想旗帜也存在。我尝试过Python 2和3、Paramiko 2.4和2.7.0,结果与“无”相同。 有人能纠正/帮助我吗 该准则基于: 使用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
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()