我想:
$ 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-server
或sshd
取决于您的包管理器。
答案2
调试上述问题的步骤:
使用
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 环境中进行的。