如何在标准 22 以外的其他端口上运行 SSH 守护程序?
我在云虚拟机上搞砸了 SSH 配置,现在 SSH 总是提示我输入密码。我之前尝试修复这个问题,但结果把我锁住了,迫使我卸载磁盘,将其安装在一个正常工作的虚拟机内,然后将文件修复到已知的工作状态。然而,它仍然迫使我输入密码。
我想更新/etc/ssh/sshd_config
并重新启动主 ssh 守护程序,以便对其进行测试,同时仍让另一个使用旧配置的守护程序运行,以便在第一个守护程序将我锁定的情况下,我可以使用该守护程序恢复配置。我该如何做,特别是在 Ubuntu 上?
答案1
您没有提到 Ubuntu 版本,所以我不确定您正在运行哪个 init 系统。
如果是 systemd,您可能有一个文件/etc/systemd/system/sshd.service
。 您可以将其复制为/etc/systemd/system/sshd_alt.service
。 然后调整ExecStart
行并添加-p 22000
或某些内容。 之后执行systemctl enable sshd_alt
和systemctl start sshd_alt
。 您也可以指向完全不同的配置文件。
如果这只是一次性操作,您也可以手动启动 screen 中的副本或类似操作。只需启动 screen 并执行类似操作即可/usr/sbin/sshd -D -p 22200
。您将启动一个备用 sshd 守护程序,直到您可以重新连接到该 screen 并终止该进程。
或者像@EEAA 所说的那样。只需不要断开连接,使用第二个会话来测试是否可以重新连接。
答案2
您可以使用以下命令在备用端口上启动 sshd:
sshd -p 12345
将 12345 替换为您喜欢的端口号。如果sshd
您的 中没有PATH
,您可能需要在命令中使用完整路径名,例如/usr/sbin/sshd
。
答案3
只需让一个 SSH 会话保持活动状态,然后使用另一个会话进行配置更改。如果配置更改导致某些问题,您的原始会话将保持连接状态,并可用于恢复更改。