我最近在 Fedora 16 中安装了 ssh 服务器 openssh-server。我将我的朋友用户帐户添加到我的 sshuser 列表中。当我的朋友尝试使用以下命令通过 ssh 连接我的服务器计算机时
远程控制[电子邮件保护]
然后显示以下错误
ssh: connect to host 192.168.1.123 port 22: Connection refused
但是当我从我的机器本地尝试时,服务器已连接。
root@localhost /]# ssh [email protected]
[email protected]'s password:
Last login: Tue Feb 26 13:24:42 2013 from localhost.localdomain
[sudip@localhost ~]$
另外,我的防火墙允许 SSH,并且 SHH 在端口 22 上运行。那么我该如何排除错误呢?
先感谢您。
编辑: 我已经使用 sshd 启动了服务 sshd 重启
编辑2: 输出:iptables -n -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
46970 23M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
11 616 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
133 8552 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
2328 343K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 59145 packets, 7665K bytes)
pkts bytes target prot opt in out source destination
编辑 3:结果traceroute 192.168.1.123
traceroute to 192.168.1.123 (192.168.1.123), 30 hops max, 60 byte packets
1 192.168.50.1 (192.168.50.1) 0.828 ms 0.805 ms 0.818 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
该工作站还使用 Fedora 16
答案1
您可以使用 ssh -vvv[电子邮件保护]获取连接的调试信息。如果 -vvv 的信息太多,您可以使用 -vv 或 -v 获取不太详细的调试信息。
在远程服务器上,您应该也能够在 /var/log/message 或 /var/log/syslog 中看到一些信息。
这两件事的组合应该会为您指明正确的方向。
答案2
该Connection Refused
消息通常意味着没有任何东西正在监听该 ipaddress:port。检查 sshd 是否正在监听您的 192.168.1.123:22
netstat -tnlp | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6809/sshd
tcp 0 0 :::22 :::* LISTEN 6809/sshd
上述输出表明 sshd 正在监听所有可用的 ipv4 和 ipv6 接口。如果你的情况不同,那么你应该检查ListenAddress
sshd_config 文件中的指令。
答案3
执行 ssh -vv[电子邮件保护]将显示 SSH 连接的详细信息。您还可以尝试“telnet 192.168.1.123 22”(telnet 主机名端口)以验证端口 22 是否正在监听。