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

Eri*_*son 20 ssh

我想:

$ ssh eric@myserver
Run Code Online (Sandbox Code Playgroud)

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

ssh: connect to host myserver port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

Sha*_*dur 15

您没有运行 SSH 守护程序。如果你看一下从输出ps ax命令,你看到的是,在描述中只有两个进程与“SSH”是ssh-agent(其中做了从完全不同sshd),并且grep ssh您使用过滤器的输出过程ps

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


pra*_*tri 13

调试上述问题的步骤:

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

     $ nmap myserver
    
    Run Code Online (Sandbox Code Playgroud)

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

 $ nc -v -nn myserver portno
Run Code Online (Sandbox Code Playgroud)

假设2424端口的输出为:

myserver 2424 open
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5
Run Code Online (Sandbox Code Playgroud)

这意味着 ssh 在 2424 上运行。

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