我正在尝试通过 ssh 进入我的 ec2 实例以部署我的 MEAN-stack 应用程序,但无论如何我都会收到超时错误。我尝试了其他 StackExchange 线程中发布的许多解决方案,但都无济于事。我运行的是 macOS 10.14.1
在我的 Mac 上,我尝试通过 FileZilla、Cyberduck 进行连接,甚至使用命令行参数(例如和 )。以下是运行以下任一命令时的错误输出:ssh -v -v -v -i "<pem-file-name>.pem" [email protected]
ssh [email protected]
OpenSSH_7.1p2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to ec2-18-207-106-113.compute-1.amazonaws.com [18.207.106.113] port 22.
debug1: connect to address 18.207.106.113 port 22: Connection timed out
ssh: connect to host ec2-18-207-106-113.compute-1.amazonaws.com port 22: Connection timed out
这些是我尝试过但似乎不起作用的解决方案:
使用 PuTTY、FileZilla 和命令行在 Windows 10 上连接,但也收到相同的超时错误。
使用不同的 MSI(首先使用 Bitnami,然后使用 Ubuntu)
防火墙已禁用
重置默认端口
/etc/ssh/ssh_config
并连接到新端口正在 Ping
ec2-18-207-106-113.compute-1.amazonaws.com
并且18.207.106.113
成功运行命令
netstat -nat | grep 22
给出以下输出tcp4 0 0 192.168.254.17.56207 17.249.188.80.5223 ESTABLISHED 9e4be63389882253 stream 0 0 0 9e4be6338988231b 0 0 9e4be6338988231b stream 0 0 0 9e4be63389882253 0 0 9e4be63384ea2193 dgram 0 0 0 9e4be63384ea225b 9e4be63384ea225b 0 9e4be63384ea225b dgram 0 0 0 9e4be63384ea2193 9e4be63384ea2193 0 kctl 0 0 22 9 com.apple.netsrc
EC2 安全组设置了以下入站规则:EC2 安全组
答案1
欢迎成为超级用户@Robert!
您的所有线索最初似乎都指向实例所附加的安全组存在问题,但您的 SG 规则看起来不错。
有一款名为 的工具hping
,您可以在 Mac 上(通过brew
)获取它,您可以使用它来“ping” 18.207.106.113 服务器上的端口 22。我试过了,它有效:
$ sudo hping -S -p 22 18.207.106.113
HPING 18.207.106.113 (en0 18.207.106.113): S set, 40 headers + 0 data bytes
len=44 ip=18.207.106.113 ttl=42 DF id=0 sport=22 flags=SA seq=0 win=26883 rtt=38.8 ms
len=44 ip=18.207.106.113 ttl=44 DF id=0 sport=22 flags=SA seq=1 win=26883 rtt=39.6 ms
len=44 ip=18.207.106.113 ttl=42 DF id=0 sport=22 flags=SA seq=2 win=26883 rtt=40.7 ms
现在线索指向本地端的问题,可能是您的 Mac 和/或您的网络。首先,将您的 Mac 重置/etc/ssh/ssh_config
为默认设置,因为您没有更改服务器正在监听的 SSH 端口。
如果这不起作用,请尝试将您的 Mac 放在不同的网络上,也许打开您手机的热点并连接到该热点,或者去朋友家或咖啡店。
如果失败了,就换一台不同的机器。这样应该(希望)有用,然后你就可以回过头来找出设备中的问题所在。
祝你好运!