繁体   English   中英

Linux (bash):如何列出本地主机可用的 SSH 身份验证方法?

[英]Linux (bash): how to list available SSH authentication methods for local host?

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

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

nmap也可以使用ssh-auth-methods来做到这一点:

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

示例 output:

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 -T打印出有效的 sshd 配置选项,这将显示哪些选项有效,即使sshd_config为空。对于此用例,运行sshd -T | egrep 'permitrootlogin|authentication'会很有用。)

有一个更好的方法,从这里 +由我为localhost情况修改:

ssh -o PreferredAuthentications=none -o NoHostAuthenticationForLocalhost=yes localhost

ssh -v服务器,并找到第一条“可以继续的身份验证”行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM