当我使用 ssh 进入服务器时
ssh -vvv user@ip
client
它向我提供了有关连接到 OpenSSH 服务器所执行的特定步骤的所有信息。
我想知道是否有办法知道server
(sshd 守护进程)在请求client
建立连接时将执行的所有类似步骤?
答案1
如果您只是需要暂时执行此操作(例如,调试特定问题),则可以sshd
使用设置调试标志以交互方式运行。
- 登录服务器并成为 root 用户。
- 停止常规 SSH 守护进程。
在设置调试标志的情况下以交互方式运行 sshd:
/usr/sbin/sshd -d
运行客户端并执行您要排除故障的测试。
sshd
将在您的终端前台运行并输出调试信息。
如果你不想停止正常的 ssh 服务器,你可以在不同的端口上运行调试服务器:
/usr/sbin/sshd -d -p 10022
然后让您的客户端连接到备用端口。
答案2
修改日志文件(通常/etc/sshd/配置) 以使 sshd 具有尽可能详细的日志记录。具体情况可能有所不同,但 DEBUG3 可能是最高的。正如手册页所述:
LogLevel
Gives the verbosity level that is used when logging messages from
sshd. The possible values are: QUIET, FATAL, ERROR, INFO, VER-
BOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3. The default is INFO.
DEBUG and DEBUG1 are equivalent. DEBUG2 and DEBUG3 each specify
higher levels of debugging output. Logging with a DEBUG level
violates the privacy of users and is not recommended.