SSH服务器配置与密钥管理全解析
1. SSH服务器调试
在使用inetd或xinetd运行SSH服务器时,如果使用 –i
命令行选项,调试可能会比较棘手。因为sshd不能向标准错误发送额外的调试输出,否则inetd或xinetd会将其与正常的SSH协议对话一起转发给SSH客户端,导致连接失败。
对于OpenSSH,如果使用 –i
选项,它会强制将所有调试输出发送到syslog,从而解决了这个问题。而对于Tectia,最简单的方法是将调试输出从标准错误重定向到一个文件。由于许多版本的inetd或xinetd在其配置文件中不支持shell元字符,因此最好使用一个简短的shell脚本来调用sshd并进行输出重定向:
#!/bin/sh
# redirect Tectia sshd standard error to a file
exec /usr/local/sbin/sshd -d 2 -i 2> /tmp/sshd2.debug
只需在inetd或xinetd配置文件中指定这个shell脚本,而不是直接指定sshd。
另外,也可以使用 logger
程序将调试输出发送到syslog:
#!/bin/sh
# send Tectia sshd debug output to syslog
exec /usr/local/sbin/sshd -d 2 -i 2>&1 | grep "^deb