我的目标是sshd
使用自己的配置文件在一个非特权端口(例如2222)上启动第二个实例。
显然,该sshd
过程无法实现,setuid
因此以运行sshd
守护程序的用户以外的用户身份登录显然是不可能的。
但是,是否可能有一个sshd
适用于当前运行用户的工作守护程序?对于我的用例,这会很好。
我尝试sshd
使用自己的配置文件和主机密钥启动实例,然后该sshd
过程启动(没有抱怨像某些命令那样不是root用户),但是当我尝试连接到该端口时,该sshd
过程终止。
$ /usr/sbin/sshd -dD -h .ssh/id_rsa -p 2222
debug1: sshd version OpenSSH_5.6p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: setgroups() failed: Operation not permitted
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-dD'
debug1: rexec_argv[2]='-h'
debug1: rexec_argv[3]='.ssh/id_rsa'
debug1: rexec_argv[4]='-p'
debug1: rexec_argv[5]='2222'
debug1: Bind to port 2222 on 0.0.0.0.
Server listening on 0.0.0.0 port 2222.
debug1: Bind to port 2222 on ::.
Server listening on :: port 2222.
debug1: fd 6 clearing O_NONBLOCK
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 6 out 6 newsock 6 pipe -1 sock 9
debug1: inetd sockets after dupping: 5, 5
Connection from ::1 port 57670
debug1: Client protocol version 2.0; client software version OpenSSH_5.6
debug1: match: OpenSSH_5.6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: list_hostkey_types:
No supported key exchange algorithms
debug1: do_cleanup
debug1: do_cleanup
debug1: audit_event: unhandled event 12
该debug1: setgroups() failed: Operation not permitted
线显然伸出,但直到尝试接受连接后它才消失。
UsePam
为来禁用PAMno
。