整理一下目前想到的几种方法:
0x01: 在其它端口启动sshd。
要知道sshd是可以在其它端口启动的。
1.如果我们有root权限,那就直接 /bin/sshd -p 2222 , 就另起了一个sshd的进程监听2222端口。端口号可以随着需要进行改动。
2.如果我们没有root权限,那也是可以启动sshd的,只是现在要把 /etc/ssh/sshd_config 配置文件另外放一份,总之就是保证当前登录的用户能读到配置文件。另外就是 /etc/ssh 中的那些host key,这些host key 还是需要另外放一份,或者让这些host key 能被当前用户读到(修改权限这种方式不合适)。
保证了配置文件和host key能被当前用户读到之后,我们就可以用普通用户启动sshd了,例如如下命令:
/bin/sshd -e -p 2222 -D -h ~/ssh/ssh_host_dsa_key -h ~/ssh/ssh_host_ecdsa_key -h ~/ssh/ssh_host_ed25519_key -h ~/ssh/ssh_host_rsa_key
但是这种方式还是有问题,就是其它用户运行sshd会出现验证失败。
0x02: 使用iptables做端口转发。
这个之后再说。
0x03: 使用ssh做端口转发。
这个可能性能上会有些问题,但是对权限要求最小,普通用户就可以。
使用如下命令:
coproc nohup ssh -N -T -L 0.0.0.0:2222:127.0.0.1:22 a123@localhost &>> /dev/null
以上命令的用户名和端口需要根据需要进行修改。