6

有没有办法使用命令行列出本地主机的所有可用 SSH 身份验证方法?基本上,我希望看到服务器在尝试从(远程)客户端连接时宣布的相同列表。

注意:我不想搜索/etc/ssh/sshd_config,因为这需要对通常存在的身份验证方法有太多了解(例如,sshd_config可能只是 emtpy)

4

3 回答 3

9

ssh -v server 并查找第一个“可以继续的身份验证”行。

于 2013-10-18T13:41:16.760 回答
6

从这里有更好的方法+我为本地主机案例修改:

ssh -o PreferredAuthentications=none -o NoHostAuthenticationForLocalhost=yes localhost
于 2015-10-27T11:37:59.430 回答
2

nmap也可以使用ssh-auth-methods

nmap -p 22 --script ssh-auth-methods localhost

示例输出:

Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-16 12:07 +07
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000087s latency).

PORT   STATE SERVICE
22/tcp open  ssh
| ssh-auth-methods: 
|   Supported authentication methods: 
|     publickey
|_    password

Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds

它在幕后所做的是在ssh-auth-methods.nse. 用于libssh2连接随机用户名并列出可能的身份验证方法。

(可以使用 打印出有效的 sshd 配置选项sshd -T,这将显示哪些选项有效,即使sshd_config为空。对于这个用例,运行sshd -T | egrep 'permitrootlogin|authentication'将很有用。)

于 2021-08-16T05:22:10.307 回答