我在互联网上有一台带有 ssh 服务器的服务器。我尝试配置 ssh(通过编辑文件/etc/ssh/sshd_config
)编辑后,我必须重新启动 ssh。但是一旦我在文件中输入了拼写错误/语法错误,ssh 服务器就不会启动。我无法改回来,因为没有连接到机器。
有什么方法可以提供备份配置文件(在出错时自动选择)或其他方法来防止自己被服务器锁定?
我发现的唯一方法是通过 FTP 连接并编辑文件,但简单的 FTP 并不安全,而 SFTP 使用 ssh,所以这只是一个不安全的解决方案。
答案1
如果你正确测试了配置,则不需要回退配置,即
- 通过 SSH 连接到系统
- 更改 SSH 服务器的配置。
-t
使用 sshd 的或选项测试配置-T
。- 在仍处于连接状态时重新启动 sshd。这不会关闭当前连接。
- 尝试创建与服务器的第二个连接。如果失败,您仍然可以使用第一个活动连接来重新安装并测试先前的配置。
答案2
screen -x
cd /etc/ssh
cp sshd_config sshd_config_orig
vim sshd_config
sshd -t
systemctl restart sshd; mv sshd_config sshd_config_attempt; mv sshd_config_orig sshd_config
然后保持连接,但打开一个新终端并使用全新的 ssh 客户端来测试新的连接。
如果您对其正常工作感到满意:
rm sshd_config; mv sshd_config_attempt sshd_config
如果您对其正常工作不满意:
systemctl restart sshd
如果您在测试期间因意外事故而失去连接,请使用 ipmi 或虚拟机管理程序控制重新启动远程服务器,它将使用旧的已知工作配置重新启动。