如何在标准22以外的其他端口上运行SSH守护进程?
我在一个云虚拟机上搞了一些SSHconfiguration的东西,所以现在SSH总是提示我input密码。 我的早期尝试解决这个问题locking了我,迫使我卸下磁盘,将其装入一个有效的虚拟机,并将文件修复到已知的工作状态。 但是,它仍然迫使我input密码。
我想更新我的/etc/ssh/sshd_config并重新启动主要的ssh守护进程,我可以testing这个守护进程,同时还有另外一个运行,使用旧的configuration,我可以用来恢复configuration,以防万一一个人把我锁起来。 我将如何做到这一点,特别是在Ubuntu上?
你没有提到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 。 你也可以指向一个完全不同的configuration文件。
你也可以在屏幕上手动启动一个副本,如果这只是一次。 只要开始屏幕,并执行/usr/sbin/sshd -D -p 22200 。 您将启动一个备用的sshd守护进程,直到您可以重新连接到该屏幕并终止进程。
或者像@EEAA所说。 只要不要断开连接,使用第二个会话来testing你可以重新连接。
只需保持一个SSH会话处于活动状态,然后使用另一个进行configuration更改。 您的原始会话将保持连接,并可用于恢复更改如果您的configuration更改中断。
您可以使用以下命令在备用端口上启动sshd:
sshd -p 12345
将12345replace为您最喜欢的端口号。 如果sshd不在PATH ,则可能需要使用命令中的完整path名,例如/usr/sbin/sshd 。