我对 Linux 的经验有限,作为项目的一部分,我订购了一台 Linux 专用服务器。这是一台装有 OpenSuSE 13.2 的非托管服务器。当我尝试通过 ssh 进入服务器时,我收到一条拒绝连接的消息
ssh: connect to host xxx.xxx... port 22: Connection refused
我认为他们的默认图像在启动时没有启用 ssh,但我可能错了。他们提供了一个救援系统,这是一个从内存中安装并加载的 Linux 系统,用于故障排除。当我加载它时,我可以通过 SSH 连接到系统。我可以安装硬盘并进行更改。
我想知道如何检查和/或需要进行哪些配置更改才能在 OpenSuSE 13.2 启动时启用 ssh恢复系统。如果需要,我可以提供任何配置文件内容。我基本上是 Windows 背景的,因此如果您可以提供详细的步骤,那将会很有帮助。
作为我研究的一部分,我检查了 init.d 文件,其中没有文件,我猜测 ssh 已安装,因为在/etc/ssh/sshd_configsshd
中存在类似文件。/etc/ssh
答案1
1. 验证安装
运行which sshd
以获取调用它的路径。如果没有得到/usr/sbin/sshd
响应,则很可能未安装。
2.安装 sshd
运行zypper in openssh
以安装应用程序。
3.检查防火墙
运行命令cat /etc/sysconfig/SuSEfirewall2 | grep sshd
。
您需要查看FW_CONFIGURATIONS_EXT="sshd"
- 这意味着防火墙允许端口 22 上的传入流量。
如果找不到,您可以使用这样的文本编辑器添加它:
vi /etc/sysconfig/SuSEfirewall2
并找到其中的行FW_CONFIGURATIONS_EXT=""
并将其更改为FW_CONFIGURATIONS_EXT="sshd"
4.检查服务是否正在运行
systemctl status sshd | grep Active
- 如果你得到Active: inactive (dead)
你需要从开始systemctl start sshd
。
再次运行命令systemctl status sshd | grep Active
,你现在应该看到Active: active (running) since ...
5. 启动时启用 SSH
systemctl enable sshd
答案2
OpenSUSE 从 Leap 15 开始,Tumbleweed 摆脱了旧防火墙,转而使用防火墙和 Fedora 一样。这会改变您添加 SSH 配置的方式:
firewall-cmd --add-service=ssh --zone=external --permanent
--添加服务 = ssh由于 SSH 是预定义服务之一,因此您可以将其用作服务。替代方案是--add-port=22
。
--zone=外部更新外部区域。区域被分配给接口。
- 永恒的重启后仍保留此更改。
/etc/firewalld/zones
为了验证这是否完成,可以检查XML 文件。
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>External</short>
<description>For use on external networks.</description>
<interface name="eth0"/>
<service name="ssh"/>
<masquerade/>
</zone>