多端口SSH的配置


24

我需要在两个端口上侦听SSH:22用于托管管理员访问权限,而26用于常规访问权限。我想禁止在26上进行root登录,并禁止端口22以外的所有IP(内部IP)。后者可以通过iptables规则完成,但我不知道前者。有任何想法吗?


3
root永远不能通过ssh登录;期; 故事结局; 降压在这里停止;决不。如果您需要root用户访问权限,则可以通过普通用户登录,然后使用su或提升权限sudo
克里斯·S

6
如果您将root登录限制为密钥身份验证,则允许通过ssh进行root登录,如果会话仅限于您控制的IP地址,则甚至允许密码身份验证。“从不”太强了。
AugustBitTony11年

3
我认为在某些情况下,具有root登录名是有意义的(例如/ home分区上的文件系统损坏,不包括以标准用户身份登录)。可以帮忙的一件事是将sshd_config PermitRootLogin参数设置为without-password。这仅允许使用ssh密钥通过ssh进行root登录。密码验证将不起作用。
ewwhite 2011年

这篇文章可能会有所帮助:everythingsysadmin.com/2010/09/...
TomOnTime

Answers:


27

在中/etc/ssh/sshd_config,进行以下更改。查找显示的行,Port 22并在其下添加类似的行。

Port 22
Port 26

保存文件并重新启动sshd守护程序。

如果在端口22上为内部用户启用了ssh,但需要在端口2222上进行外部连接,则需要执行此操作。这会将ssh守护程序绑定到两个端口号。


6
以及您现在如何将root登录限制为端口22?
骗子

@faker我见过使用防火墙/网络限制,只提供IP的访问白名单常规端口22
ThorSummoner

10

您可以使用sshd-f选项指定备用配置文件。在配置文件中,您需要使用

Port 26 

指令更改sshd侦听的端口。

PermitRootLogin no

禁用root登录

然后,您可以执行类似的操作

/usr/sbin/sshd -f /etc/ssh/sshd_config_port_26

您可能需要复制标准的sshd启动脚本并进行修改,以便可以在启动时启动端口26服务。

你为什么做这个 ?


1
如果您希望服务器在其他方面本质上相似,而不是拥有两个完整的配置文件,那么添加起来不是更直接,更合适-o PermitRootLogin yes -p 26

3

假设sshd将与特定于命令行的配置文件一起运行,那么您可以创建在端口26上运行的第二个配置,并执行引用该端口的第二个启动脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.