gcloud compute scp local file to VW /usr/bin

gcloud compute scp local file to VW /usr/bin

我正在尝试将一个文件从本地计算机传输到计算机引擎中的 VM。

我正在运行执行以下命令:

gcloud compute scp test.txt instance-name:/usr/bin/

然后,几秒钟后我收到连接超时的消息。退出 return 代码 1.

在这个 guide 之后,但是 Google 云教程里面的东西一样多,它们真的很稀疏和肤浅。

无论如何,我下载了 netcat,当我 运行

nc [EXTERNAL_IP] 22

我没有收到任何回复...而且没有任何回应...您被困住了... 有什么想法吗?

** 编辑 2019-04-11 - 14:15

当我在 Windows 环境中工作时,为 Windows 子系统安装了 Debian,并使用 bash 控制台,遵循相同的过程,现在我得到这个错误:

** 编辑 2019-04-11 - 14:33

看起来连接甚至没有到达我的 VM 防火墙。 Stackdriver 没有记录任何内容(它在 'default-allow-ssh' 记录中处于活动状态,但我不知道是否应该在那里记录一些内容)。

** 编辑 2019-04-11 - 15:52 按照 Google 故障排除(启动脚本)中的步骤操作:https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-ssh

我在尝试登录时得到了这些数据:

防火墙规则列表:

** 编辑 16:55,

我几乎尝试了这里显示的所有方法https://cloud.google.com/compute/docs/instances/transfer-files#transfergcloud

还是没有头绪,一定是有什么东西阻止了我的访问。

查看 documentation about Using Firewall Rules,我可以看到 default-allow-ssh 只允许访问从网络内部连接的实例,而不是从外部连接的实例。

如果你想从任何外部网络访问,you can add custom firewall rule指向你的源IP。

在苦苦寻找解决方案将近 2 天之后,这是我最后的资源: 我在某处读到,出于某种原因,我的 ISP 可能会阻止我的端口 22。所以问题是外部的。

解决方案是更改我 VW 中的 SSH 端口,步骤如下:

  • 使用 Google 默认 SSH 控制台连接到您的 SSH
  • 运行: sudo nano /etc/ssh/sshd_config
  • 找到它所在的行:#Port 22
  • 将其更改为您想要的端口,例如 445 并删除“#”
  • 然后保存 运行 sudo systemctl reload sshd.service 以应用更改
  • 现在,您的工作站 cmd,运行:gcloud compute scp ./sometestfile.txt instance-name:/usr/bin --port=445

If you mess this out and can't access SSH console, click on the dropdown and select 'Open in browser window with customized port', then using your new port.

呸!希望这对某人有所帮助...