上课的时候给学生留了个作业,让学生用xinetd来配置sshd,结果我自己没有搞定,太丢了。。。
按理说,sshd进程运行的时候,是不需要参数的,但是配置到xinetd之后,就是只能监听端口不能登陆系统。每次登陆,都会报如果错误:
ssh_exchange_identification: read: Connection reset by peer
如果加上-v参数查看的话,就会有这么一个报告:
debug1: ssh_exchange_identification: sshd re-exec requires execution with an absolute path
查到最后,后来是sshd如果用于inetd(xinetd)模式的时候,需要加上一个参数-i。
因为在inetd(xinetd)模式下,sshd在响应客户端之前要花上大约十秒的时候来重新生成一个服务器端的key,客户端不会花那么长的时间等待,所以就会报错。
而且,这个参数只用于inetd(xinetd)模式。
附正确的配置文件:
service ssh
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
disable = no
}
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
disable = no
}