I need to listen to SSH on two ports: 22 for hosting admin access and 26 for regular access. I would like to disallow root login on 26 and disallow all but internal IPs for port 22. The latter can be done with iptables rules, but I don't know about the former. Any ideas?
/etc/ssh/sshd_config, make the following change. Look for the line that says
Port 22 and add a similar line under it.
Port 22 Port 26
Save the file and restart the sshd daemon.
I do this in situations where I have ssh enabled for internal users on port 22, but require external connectivity on say, port 2222. This binds the ssh daemon to both port numbers.
You can use the
-f option to sshd to specify an alternate configuration file. In the configuration file you would need to use the
directive to change the port that the sshd is listening on.
to disable root logins
You can then do something like
/usr/sbin/sshd -f /etc/ssh/sshd_config_port_26
You may want to copy the standard sshd startup script and modify them so that you can start the port 26 service at startup.
Why are you doing this ?
Assuming sshd will run with a command-line specific config file, then you could create a second config that runs on port 26 and execute a second start-up script that refers to that port.