我创建了一个 Ubuntu Vagrant 盒子并通过 ssh 进入它。
现在,创建了一个 ssh 密钥并尝试 ssh 到我的本地主机,但我收到以下错误。
vagrant@vagrant-ubuntu-trusty-64:~$ ssh -vvvv localhost
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: connect to address 127.0.0.1 port 22: Connection refused
ssh: connect to host localhost port 22: Connection refused
当我检查打开的端口列表时,如下所示:
vagrant@vagrant-ubuntu-trusty-64:~$ sudo netstat -tulpn|grep 22
tcp 0 0 10.0.2.15:22 0.0.0.0:*
LISTEN 11598/sshd
我看到 IP 地址是 10.0.2.15:22。此外,我的 sshd 服务也在运行。
vagrant@vagrant-ubuntu-trusty-64:~$ ps aux|grep ssh
root 11430 0.0 0.7 68084 3688 ? Ss 17:41 0:00 sshd: vagrant [priv]
vagrant 11432 0.0 0.3 68216 1908 ? S 17:41 0:00 sshd: vagrant@pts/0
root 11598 0.0 0.6 61388 3060 ? Ss 17:44 0:00 /usr/sbin/sshd -D
答案1
vagrant@vagrant-ubuntu-trusty-64:~$ ssh -vvvv localhost
[...]
vagrant@vagrant-ubuntu-trusty-64:~$ sudo netstat -tulpn|grep 22 tcp 0 0 10.0.2.15:22 0.0.0.0:*
10.0.2.15:22 这一行告诉 ut,有东西正在监听 10.0.2.15 上的端口 22。但是,您尝试ssh localhost
。Localhost 是 127.0.0.1(对于 IPv6 则为 ::1)。从您提供的信息来看,没有任何东西在环回接口上监听端口 22。
因此ssh localhost
不起作用。ssh 10.0.2.15
可能会起作用。
如果套接字侦听特定接口,它将仅接收发往该接口的数据包。套接字可以侦听通配符 0.0.0.0,这意味着它将在任何接口上接收该端口上的数据包。本地主机和主机的网络地址都可以访问在 0.0.0.0 侦听的进程。