无法SSH到在自定义端口上运行的VM实例

时间:2019-07-02 19:04:12

标签: google-cloud-platform

我们在自定义端口上运行sshd,现在似乎无法访问该实例

我们尝试重新启动实例,更改磁盘大小

    gcloud compute ssh rl --zone us-east1-b --ssh-flag=“-vp 25”
    OpenSSH_7.9p1, LibreSSL 2.7.3
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 48: Applying options for *
    debug1: Connecting to 35.XXX.XX.38 [35.227.46.38] port 25.
    debug1: connect to address 35.XXX.XX.38 port 25: Connection refused
    ssh: connect to host 35.XXX.XX.38 port 25: Connection refused
    ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

1 个答案:

答案 0 :(得分:0)

您的错误消息表明连接被拒绝,这表明SSHD正在服务器上运行,或者您正在连接到运行SMTP的错误机器。相反的是“连接超时”,表示防火墙阻止了访问。我将列出分析此问题的不同方法。

注意:您正在使用SMTP通常使用的TCP端口25。 ISP和公司网络通常会通过政策阻止这种情况。

我可以想到几个可能的问题:

  1. 您没有在GCE VM实例上启用防火墙规则,该规则允许在自定义端口上使用SSH。
  2. 公用IP地址已更改。仔细检查Google控制台中的IP地址,然后将其与您使用的地址进行比较。
  3. SSH守护程序已崩溃或未启动。检查您的Stackdriver日志中的该实例。您还可以检查Compute Engine串行端口输出。
  4. 您对用于连接的公共密钥具有错误的文件权限(在~/.ssh中查找Google密钥对。
  5. 在极少数情况下,ISP或公司防火墙可能会阻塞您正在使用的端口。一些公司将传出SSH视为安全风险。请参阅上面有关SMTP(端口25)的注释。

Interacting with the Serial Console

Stackdriver Logging

我要检查的第一项是公用IP地址,并验证您是否连接到正确的计算机。

接下来,我将检查允许您的自定义端口上进行通信的防火墙规则。登录到Google Cloud Console。转到“ VPC网络”->“防火墙规则”。单击您对自定义SSH端口具有的规则。屏幕底部附近是此规则适用的GCE VM实例列表。如果您的实例不在列表中,请修复该问题。验证端口号,IP范围等。

接下来,我将在VM启动期间在Stackdriver日志中查找错误消息。查找有关SSHD的消息。如果您尚未在实例上安装Stackdriver,请重复检查“串行端口”输出(请参见上面的文档链接)。