使用更改后的SSH端口,通过SSH授权密钥进行登录。

我在/etc/ssh/sshd_config文件中更改了我的SSH端口,然后重新启动了SSH服务。我实施了fail2ban,并在该配置下更新了我的SSH端口。然后,我还实施了UFW防火墙,并允许传入连接到我的新SSH端口。
然而,当我尝试使用ssh -i /Users/myuser/.ssh/vpsssh user@555.555.555.555登录时,它尝试连接到22端口,而不是我定义的端口。

2服务器和客户端不会自动了解对方。除非在服务器的sshd_config文件中更改,否则它们都使用默认端口22,或者在命令中为客户端指定,例如这里 - bistoco
1他们可能正在尝试从Windows电脑登录到Ubuntu服务器,我认为这仍然是相关话题。 - Arronical
你为什么在连接每个主机时使用不同的密钥呢? - R.. GitHub STOP HELPING ICE
2个回答

你可以使用-p选项在ssh客户端命令行上指定一个非默认端口。来自man ssh的说明:
 -p port
         Port to connect to on the remote host.  This can be specified on
         a per-host basis in the configuration file.

你可以将主机的端口号和身份文件位置都放在一个~/.ssh/config文件中,这样就不需要每次在命令行上指定了。
例如:
Host myremotehost
  Hostname      555.555.555.555
  User          user
  Port          20002
  IdentityFile  /Users/myuser/.ssh/vpsssh

然后你就可以使用:
ssh myremotehost

当你开始定义这种配置时,可能对许多人有用:如何配置SSH,使其不自动尝试所有身份文件? - Giacomo Alzetta

请注意,ssh接受以URI形式的命令,例如ssh://user@host.com:<port>。基于此,当我使用私钥登录远程服务器时,我会执行以下操作:
ssh -i ~/.ssh/id_rsa ssh://myuser@domain_name.com:2222

这个在 "Unix Linux S.O." 的回答解释了为什么 SSH 实际上不接受 URI。我在我的更新的 Ubuntu 20.04 上尝试过,但它没有起作用,所以我认为这个答案是无效的。(Note: Chinese text provided as translation) - badc0de