我将我的家庭服务器上的默认SSH端口(在/etc/ssh/sshd_config
文件中)更改为端口54747,然后重新启动ssh
和sshd
服务(永远不知道哪一个,所以为了安全起见,我都这样做了)。为了测试我的配置,我先注销然后再重新登录没有任何问题。
几天后,我安装了apt更新,然后重新启动了服务器。当我尝试重新登录SSH(在端口54747上)时,出现连接拒绝错误。
出于某种原因,我尝试在默认端口上进行SSH,并且有效!我回去检查sshd_config,但是它仍然具有自定义端口。因此,我重新启动ssh
和sshd
服务,然后恢复为“常规”行为(端口54747上的ssh)。我尝试重新启动,但连接再次被拒绝...
有人知道我做错了吗?
额外细节:
- Ubuntu 16.04.2 LTS
- 服务器还使用了HTPC,电视上有一个打开的会话(与SSH相同的用户)
- 我使用笔记本电脑的RSA密钥进行SSH加密,并禁用了密码身份验证
- 我曾经使用进行过重新启动
sudo reboot -h now
,但是在搜索之后,我发现某些人不推荐使用它,因此我尝试了sudo reboot
,但没有任何区别
编辑 事件序列:
- 将SSH端口从22更改为54747
/etc/ssh/sshd_config
- 重新启动SSH和SSHD服务
- 结束当前的SSH会话
- SSH成功通过端口54747重新登录
- 重启
- SSH连接错误在端口54747上,但在端口22上成功
- 重新启动SSH和SSHD服务
- SSH成功返回端口54747,端口22连接错误
- 重新启动并返回到6
编辑1: netstat
输出
rgo@ATLAS:~$ sudo netstat -lntp | grep :54747
rgo@ATLAS:~$ sudo netstat -lntp | grep :22
tcp6 0 0 :::22 :::* LISTEN 1/init
编辑2: service sshd status
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: inactive (dead)
编辑3: lsof -i | grep ssh
systemd 1 root 46u IPv6 42724 0t0 TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
systemd 1 root 49u IPv6 14641 0t0 TCP *:ssh (LISTEN)
sshd 4088 root 3u IPv6 42724 0t0 TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd 4088 root 4u IPv6 42724 0t0 TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd 4202 rgo 3u IPv6 42724 0t0 TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd 4202 rgo 4u IPv6 42724 0t0 TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
作为参考,ATLAS是远程服务器主机名,192.168.1.27是我的笔记本电脑的LAN IP,并且在步骤6和7之间执行了命令
ufw status
Status: inactive
编辑4: ps -ef |grep sshd
root 4088 1 0 22:40 ? 00:00:00 sshd: rgo [priv]
rgo 4202 4088 0 22:40 ? 00:00:00 sshd: rgo@pts/1 sshd
Port 10285
。Google显示了54747的几个结果...(3)SSH服务器也可以同时使用多个端口。为每个端口创建两个单独的指令:Port 22
和Port 54747
,然后仅将第二个指令打开到防火墙中。(4)您可以尝试将Match LocalPort
指令放在的开头sshd_c
。