如何更改Google Cloud实例上的sshd端口?

时间:2018-10-02 21:06:41

标签: google-cloud-platform google-compute-engine

我将/etc/ssh/sshd_config中的端口更改为23。我重新启动了sshd(sudo systemctl restart sshd)。我为23添加了防火墙规则:

gcloud compute firewall-rules create debug-ssh-23 --allow tcp:23

但是仍然无法正常工作... Ssh命令超时。如何正确更改sshd端口?

编辑:

防火墙规则是: { "allowed": [ { "IPProtocol": "tcp", "ports": [ "23" ] } ], "creationTimestamp": "2018-10-02T14:02:23.646-07:00", "description": "", "direction": "INGRESS", "disabled": false, "id": "3968818270732968496", "kind": "compute#firewall", "name": "debug-ssh-23", "network": "https://www.googleapis.com/compute/v1/projects/foo/global/networks/default", "priority": 1000, "selfLink": "https://www.googleapis.com/compute/v1/projects/foo/global/firewalls/debug-ssh-23", "sourceRanges": [ "0.0.0.0/0" ] }

但是我无法在此端口上访问简单的nginx服务。在80年代,作品。 80的规则与此类似。

sshd_config:

# Force protocol v2 only
Protocol 2

# Disable IPv6 for now
AddressFamily inet

# /etc is read-only.  Fetch keys from stateful partition
# Not using v1, so no v1 key
HostKey /mnt/stateful_partition/etc/ssh/ssh_host_rsa_key
HostKey /mnt/stateful_partition/etc/ssh/ssh_host_ed25519_key

PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin no
UsePAM yes

PrintMotd no
PrintLastLog no
UseDns no
Subsystem sftp internal-sftp

PermitTunnel no
AllowTcpForwarding yes
X11Forwarding no

Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr

# Compute times out connections after 10 minutes of inactivity.  Keep alive
# ssh connections by sending a packet every 7 minutes.
ClientAliveInterval 420

AcceptEnv EDITOR LANG LC_ALL PAGER TZ

2 个答案:

答案 0 :(得分:2)

除了import pandas as pd from bokeh.io import output_file, show from bokeh.models import ColumnDataSource, GMapOptions from bokeh.plotting import gmap 选项data = pd.read_csv('bc_adult_education.csv') x=data['Latitude'] y=data['Longitude'] output_file("gmap.html") map_options = GMapOptions(lat=50.748165, lng=-122.595148, map_type="roadmap", zoom=5) p = gmap("API Key", map_options, title="BC") source = ColumnDataSource(data=dict(lat=x,lon=y)) p.circle(x="lon", y="lat", size=5, fill_color="blue", fill_alpha=0.8, source=source) show(p) 外,另请参见sshd_config

运行Port以应用更改。

您需要添加选项ListenAddress才能连接到另一个端口:

sudo systemctl reload sshd.service

在云控制台中,还“在浏览器窗口中的自定义端口上打开”。

查看它是否在听,以及在哪里听...

ssh-flag

输出应该像这样:

gcloud compute --project "PROJECT_NAME" ssh --zone "us-central1-b" "instance-1" --ssh-flag="-p 23"

答案 1 :(得分:0)

我不需要在我的gcloud命令中添加ssh-flag(我可以查看但无法弄清楚如何编辑)。我遵循了以下指示:

Using SSH through airplane WiFi that blocks port 22

但是我的Centos安装中有一个空白的sshd_config。我只是将以下行添加到其中:

Port 80

并运行(我首先在上面的链接中执行了命令):

systemctl restart sshd.service

然后我启动并在端口80上运行SSHD。

其他注意事项:

  1. 我之所以使用它,是因为我想在JetBlue航班上进行工作,并且无法使用SSH连接到服务器(似乎它们阻止了端口22的流量,并且我不想更改端口号)我正在运行SSHD。因此,我创建了此虚拟机以在端口80上运行SSH,然后可以从那里连接到我的服务器。

  2. 为了节省$ 300的Google Cloud信用额,我关闭了我的VM实例,在飞行中,我将其打开,并且该Google Cloud Zone中没有足够的资源来启动我的实例。啊!在离开航班之前,将VM实例设置为运行,以确保它可以提前使用。将其移动到另一个区域是PITA,因此我创建了一个新实例,即使默认情况下它设置为在端口22上运行SSH,也可以连接到它,方法是通过gcloud控制台通过浏览器窗口中的SSH进行连接,因此无论如何都不必更改运行SSH的端口(至少对于JetBlue)...

  3. 当我使用CENTOS 7映像创建此第二个VM实例时,这次它创建了完整的sshd_config文件,而我只是更改了以下行:

#Port 22

收件人:

Port 80

还执行了我帖子的第一个链接中的所有命令。