paramiko中的get_allowed_auths()用于身份验证类型

3 投票
1 回答
1833 浏览
提问于 2025-04-15 13:29

我想在Python中从一个正在运行的SSH服务器获取支持的认证类型或方法。

我在Paramiko的ServerInterface类中找到了一个叫get_allowed_auths()的方法,但我不太明白这个方法是否可以在一个简单的客户端代码片段中使用(我正在写的东西只完成这个任务)。

有没有人能给我一些链接,提供示例,除了官方文档之外?或者有没有其他的想法可以实现这个功能?

谢谢。

1 个回答

4

你可以尝试不使用任何认证方式来进行身份验证,这种方式通常会失败,但服务器会返回可以继续使用的认证类型。paramiko.Transport 提供了一个 auth_none() 方法来实现这个功能。

import paramiko
import socket

s = socket.socket()
s.connect(('localhost', 22))
t = paramiko.Transport(s)
t.connect()

try:
    t.auth_none('')
except paramiko.BadAuthenticationType, err:
    print err.allowed_types

撰写回答