scp 到 google cloud-shell 失败(ssh 可以)

scp 到 google cloud-shell 失败(ssh 可以)

我正在尝试使用 scp 将一个大文件复制到云壳。

使用此处建议的命令所以回答

gcloud alpha cloud-shell scp \
  localhost:~/Sites/my-app/big_file cloudshell:~/big_file

但即使我可以看到它为服务器添加了密钥,它仍然会失败Permission denied (publickey).

如果我做

gcloud alpha cloud-shell ssh

它可以正常登录服务器

答案1

事实证明,谷歌的调用scp省略了正确的用户名。

解决方案 我成功上传了

/usr/bin/scp -P 6000 -i /Users/me/.ssh/google_compute_engine -o \
  StrictHostKeyChecking=no ~/Sites/my-app/bigfile \ 
  [email protected]:~/big_file

如何解决这个问题

我能够使用--verbosity debug标志发现这一点

# gcloud alpha cloud-shell scp --verbosity debug localhost:~/Sites/my-app/big_file cloudshell:~/big_file
    DEBUG: Running [gcloud.alpha.cloud-shell.scp] with arguments: [(cloudshell|localhost):DEST: "cloudshell:~/big_file", (cloudshell|localhost):SRC:1: "['localhost:~/Sites/my-app/big_file']", --verbosity: "debug"]
    DEBUG: Running command [/usr/bin/scp -P 6000
      -i /Users/chrisjensen/.ssh/google_compute_engine
      -o StrictHostKeyChecking=no
      ~/Sites/my-app/big_file 35.185.184.136:~/big_file].
[...more debug info...]

^ 此行显示已运行的命令

然后我跑去ssh看看参数是否有差异

gcloud alpha cloud-shell ssh --verbosity debug
DEBUG: Running [gcloud.alpha.cloud-shell.ssh] with arguments: [--verbosity: "debug"]
DEBUG: Running command [/usr/bin/ssh -t -p 6000
  -i /Users/chrisjensen/.ssh/google_compute_engine
  -o StrictHostKeyChecking=no [email protected]].
[...more debug info...]

^ 注意,它将用户名添加到服务器 IP 后面。

因此我复制了 scp 命令并添加了我的用户名,它运行得很顺利。

希望这可以帮助其他试图解决这个问题的人。

答案2

这个问题应该在最新版本的 gcloud 中得到修复,您可以通过 runnign 获取gcloud components update。感谢您试用 alpha 版本!

相关内容