ssh 连接被拒绝:如何排除故障?

ssh 连接被拒绝:如何排除故障?

我想:

$ ssh eric@myserver

myserver内网中的机器在哪里。我可以myserver在端口 8080 等上 ping 或响应 HTTP,但是当我尝试时ssh,我得到

ssh: connect to host myserver port 22: Connection refused

我正在使用 Ubuntu 10。

ps -ax,按照建议给出:

eric@Isaiah:~$ ps -ax | grep ssh
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
 1641 ?        Ss     0:04 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session
18376 pts/3    S+     0:00 grep --color=auto ssh

答案1

您没有运行 SSH 守护程序。如果您查看命令的输出ps ax,您会发现描述中唯一带有“ssh”的两个进程是ssh-agent(其执行的操作与 完全不同sshd)和grep ssh您用来过滤 输出的进程ps

根据安装的发行版,您可能需要安装或运行服务器ssh,通常称为openssh-serversshd取决于您的包管理器。

答案2

调试上述问题的步骤:

  1. 使用nmap工具了解该服务器中打开了哪些端口。nmap是一个端口扫描器。因为 ssh 服务器可能运行在不同的端口上。 nmap将为您提供开放端口的列表。

     $ nmap myserver
    

2.现在您可以检查哪个服务器正在给定端口上运行。假设在 nmap 的输出中,端口 2424 已打开。现在您可以使用 nc(netcat) 工具来确定 2424 上运行的是哪个服务器。

 $ nc -v -nn myserver portno

假设2424端口的输出为:

myserver 2424 open
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5

这意味着 ssh 正在 2424 上运行。

继续更改上述命令中的端口号,并检查 nmap 列出的所有打开的端口。

答案3

这意味着 ssh 服务器未在该计算机上运行,​​或者防火墙不允许 ssh 通过。您可以使用 'ps -ax | 检查 ssh 是否正在运行。 grep ssh'。

答案4

我也遇到过这个问题,但是是在VirtualBox环境下,所以解决这个问题需要将IP地址设置在同一网段;例如:

在我的主机上,我打开cmd并输入ipconfig.我得到 100.2.2.1(例如)。

因此,在虚拟机中,我们必须将虚拟机的地址设置/etc/hosts为 100.2.2.3 等值,查看最终的数字,然后弹起虚拟机,但在启动虚拟机之前,请在虚拟机的设置中配置网络机器,所以我们需要将网络适配器设置为桥接。

所有这一切都是在 Solaris 环境中进行的。

相关内容