如何在SLES 12上启用SSH?

时间:2015-03-19 17:01:50

标签: ssh opensuse sles

我正在尝试启用ssh连接来suse linux。我有运行sshd服务:

peeyush@linux-pohb:~/gccgo.work> systemctl status sshd.service
sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since Thu 2015-03-19 18:36:05 IST; 3h 50min ago
  Process: 5702 ExecStartPre=/usr/sbin/sshd-gen-keys-start (code=exited, status=0/SUCCESS)
 Main PID: 6035 (sshd)
   CGroup: /system.slice/sshd.service
           └─6035 /usr/sbin/sshd -D

Mar 19 18:36:01 linux-pohb sshd-gen-keys-start[5702]: Checking for missing se...
Mar 19 18:36:05 linux-pohb sshd-gen-keys-start[5702]: ssh-keygen: generating ...
Mar 19 18:36:06 linux-pohb sshd[6035]: Server listening on 0.0.0.0 port 22.
Mar 19 18:36:06 linux-pohb sshd[6035]: Server listening on :: port 22.
Hint: Some lines were ellipsized, use -l to show in full.

正在侦听端口22:

peeyush@linux-pohb:~/gccgo.work> netstat -an | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      
tcp        0      0 :::22                   :::*                    LISTEN 

但我无法连接到它。

[root@lep8a peeyush]# ssh root@192.168.122.19
ssh: connect to host 192.168.122.19 port 22: Connection timed out

我的头脑在寻找互联网上的解决方案。什么都行不通。 你能帮帮我吗?

3 个答案:

答案 0 :(得分:16)

检查防火墙是否接受端口22上的传入TCP连接:

# iptables -nL | grep 22

如果结果为空,则必须在防火墙中添加规则。

打开Yast和防火墙配置:

# yast firewall

转到“允许的服务”并添加“Secure Shell Server”。保存并退出Yast并尝试连接。

评论:如果您完全禁用了防火墙(不推荐),则此答案不适用。

答案 1 :(得分:7)

运行此命令:

systemctl enable sshd.service

然后在/etc/ssh/sshd_config文件中进行必要的更改,并通过以下方式启动sshd

systemctl start sshd.service

答案 2 :(得分:1)

我在 SUSE Linux Enterprise Server 15 x86-64 中遇到了相同的问题。在系统内,我可以进行# ssh 127.0.0.1(因此sshd服务可以正常工作),但是从其他节点上我收到了“超时”消息。

首先,我检查了防火墙规则(请参阅xloto的答案):

# iptables -nL | grep 22

导致返回的消息为空,因此我们需要设置其他规则。

要为SSH的标准端口22设置防火墙规则,我遵循another tutorial(因为我没有GUI):

# firewall-cmd --permanent --add-service=ssh
# firewall-cmd --reload

这对我的情况有用,但是我不确定这是否是最佳实践。