通过代理连接亚马逊EC2的SSH

3

我在通过代理连接到我的亚马逊EC2服务器时遇到了一些问题。

我有http代理端口8080的用户名和密码。(无法控制代理) 同时,我有一个不需要代理即可工作的连接字符串 ssh -i key.pem root@xx.compute.amazonaws.com

  1. 当我尝试连接时,出现“无路由到主机”的错误
  2. 我尝试使用putty,配置代理+认证文件,但是我得到这个错误 “无法使用此密钥文件(OpenSSH SSH-2私钥)” 另外,我不知道putty如何将我的代理配置插入ssh连接字符串中,以便我可以在终端中尝试它
2个回答

3

我曾经遇到过同样的问题,以下是使用corkscrew连接的方法,我的配置文件如下:

Host AWS
    Hostname <Public DNS>
    Port 443
    #Write the appropriate username depending on your AMI, eg : ubuntu, ec2-user
    User ubuntu
    IdentityFile </path to key file>
    ProxyCommand /usr/bin/corkscrew 10.10.78.61 3128 %h %p

接下来,我只需要使用以下命令进行连接:

ssh AWS

它可以完美地工作。

注意:您必须编辑服务器上的sshd_config文件,使其在端口443(以及22)上侦听ssh连接,并重新启动ssh守护程序。


我不确定 Host AWS 对你来说是如何工作的,除非你在你的 host 文件中进行了映射。但如果我将 <Public DNS> 用于 host,那么这个解决方案就非常好用。 - matt snider
@mattsnider 我正在使用 Linux,这是如何为您的 ssh 配置设置别名的方法。您可以编写 Host YourFavName 然后执行 ssh YourFavName,它仍将正常工作。不确定为什么这对您无效。 - sawrubh

1

您确定可以使用root登录吗?请尝试使用ec2-user登录。

此外,如果您已将弹性IP分配给实例,则公共DNS可能已更改。请登录AWS控制台,选择您的实例。向下滚动以再次查看公共DNS,并仔细检查您是否正在使用正确的xx.compute.amazonaws.com地址。


尝试使用ec2-user,但遇到了相同的问题。我正在使用正确的DNS。此外,在出现“无法使用此密钥文件(OpenSSH SSH-2私钥)”错误后,我收到了弹出消息“没有可用的支持身份验证方法”。 - kirbo
1
请注意,每个EC2镜像(AMI)都有自己的用户名约定。例如,bitnami AMI具有一个名为'bitnami'的用户账户,您可以通过ssh登录该账户。 - joej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接