无法从 Windows 上的 Bash 通过 ssh 进入 AWS Ubuntu 服务器

无法从 Windows 上的 Bash 通过 ssh 进入 AWS Ubuntu 服务器

嘿,我在 Windows 10 上使用 bash,尝试快速轻松地通过 SSH 连接到我在 Amazon Web Services 上的 Ubuntu 服务器。据我所知,一切都设置正确,但当我进入 ssh 时

$ ssh -vvv -i key.rsa [email protected]

我明白了

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 123.456.789.123 [123.456.789.123] port 22.
debug1: connect to address 123.456.789.123 port 22: Resource temporarily unavailable
ssh: connect to host 123.456.789.123 port 22: Resource temporarily unavailable

通过 Putty 连接正常。发生了什么?

编辑:我又进一步将此行添加到 /etc/ssh/ssh_config 的末尾:

ProxyCommand nc %h %p %r

但现在我遇到了一个新问题:

$ ssh -vvv -i id_rsa 123.456.789.123
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 *
debug1: Executing proxy command: exec nc 123.456.789.123 22 User
debug1: permanently_drop_suid: 1000
debug3: Incorrect RSA1 identifier
debug3: Could not load "id_rsa" as a RSA1 public key
debug1: identity file id_rsa type 1
debug1: identity file id_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
nc: getaddrinfo: Servname not supported for ai_socktype
ssh_exchange_identification: Connection closed by remote host

这个完全相同的命令和完全相同的密钥在我的服务器上运行(通过 ssh 进入其自身)。

$ ssh-keygen -l -f id_rsa

确认它是相同的有效密钥。Putty 仍然有效,所以这不是我的 AWS 端口设置。当我尝试从 WinBash 连接时,服务器日志中没有 SSH 条目,但(当然)当我的服务器通过 SSH 连接到自身时会出现一个条目,所以我猜这是我的客户端设置出了问题,但是什么呢?

答案1

您的代理命令应该是:

ProxyCommand nc %h %p

nc 不需要您的 ssh 用户名,只需省略它。

如果您将用户名 (%r) 作为第三个参数传递给 nc,nc 会将其视为符号端口(服务)标识符并尝试将其转换为端口号,但实际上它做不到。这就是您收到的错误“Servname 不支持 ai_socktype”(此处的 Servname 实际上是您的用户名)。

[编辑] 嗯,话虽如此,我认为您的 ProxyCommand 不会有帮助。回到第一个错误,我相信您受到系统的限制,不知何故,系统阻止您的程序(无论是 ssh 还是 nc)与该服务器/端口建立网络连接。这可能不是防火墙问题,而是 ssh 和/或 Cygwin 的系统限制。抱歉,我不了解 Windows,无法提供进一步的帮助。

答案2

据我所知,在 AWS 上创建新实例时,您应该有 .ppk。如果您有自己生成的 .ppk 文件。

打开 Putty 会话并转到连接部分并选择 SSH 部分下的身份验证部分。

最后,浏览 .ppk 并加载它,然后打开会话。重要的一点是,在上述过程之前,您应该在 Sessions 选项卡中设置主机名和端口。

相关内容