如何在 22 以外的端口上运行 SSH 服务器

如何在 22 以外的端口上运行 SSH 服务器

我有两台计算机位于同一个路由器后面。我们称它们为 A 和 B。

A 可以通过以下方式通过 SSH 连接到 B:ssh usr@<internal ip of computer>

B 可以通过相同的方式通过 SSH 连接到 A,但必须使用外部 IP。我已将路由器的 22 端口转发到计算机 A 的 IP,因此对我来说一切都说得通。

但是,我还想将端口 26 转发到计算机 B,并使用两者的外部 IP 从网络外部进行 SSH,但指定端口 22 或 26,以有效地选择使用哪台计算机。

我尝试过允许端口 26 通过iptablesA 上的 OUTPUT 和 B 上的 INPUT,但似乎不起作用。我还将端口 26 转发到 B 的内部 IP(通过路由器),就像我对 A 的 22 所做的那样。

当我尝试使用外部 IP 和端口 26 从 A 到 B 进行 SSH 时,我得到的结果如下:

ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.

版本:

  • A = OpenSSH_5.9p1 Debian-5ubuntu1,OpenSSL 1.0.1 2012 年 3 月 14 日
  • B = OpenSSH_6.0p1 Debian-4,OpenSSL 1.0.1c 2012 年 5 月 10 日

A 有 12.04 Ubuntu,B 是带有 Raspbian 的 Raspberry Pi。

编辑:我忘记输入的内容:我尝试切换 SSH 配置文件(我发现它是/etc/ssh/ssh_config)我取消注释(删除#)了带有的行Port并更改2226。它仍然给我拒绝连接的消息。(我重新启动但无济于事。)

答案1

如果您使用的是 Linux 系统并且想要连接到端口 26 上的 SSH 服务器,则可以使用以下命令。

ssh [email protected] -p 26

笔记:

  1. 将服务器 IP 替换为您服务器的 IP 地址或 DNS 名称。
  2. 按照您的设置更改端口号。
  3. 如果你使用自定义端口 SSH,那么防火墙必须允许相同的端口进行出站、入站连接,否则将无法建立连接

答案2

似乎您没有在第二台机器上的端口 26 上运行 SSH。您可以将该机器上的端口号更改为 26。

编辑并不/etc/ssh/sshd_config要忘记重新启动 SSH ( service sshd restart) 或将其保留在 22 上,但将路由器上的端口 26 转发到第二台机器上的端口 22。另外,不要忘记更改第二台机器上的任何防火墙设置以允许连接通过。

答案3

正如我在相关答案,ssh 客户端允许指定 URI 格式为ssh://user@host:1234。例如:

ssh  ssh://[email protected]:2222

其中 2222 是端口号。替换为您打算使用的端口号。当然,请记住,为了连接到指定端口,ssh 服务器(在您尝试连接的主机上)必须首先侦听指定端口

答案4

监听端口也可以硬链接到 IP 地址

在 /etc/ssh/sshd_config 中:

ListenAddress 10.10.10.10:22
ListenAddress 20.20.20.20:4444

相关内容