Я пытаюсь использовать scp для копирования большого файла в облачную оболочку.
Используя предложенную команду из этого ТАК ответ
gcloud alpha cloud-shell scp \
localhost:~/Sites/my-app/big_file cloudshell:~/big_file
Но даже если я вижу, что он добавляет ключ для сервера, он не работает с Permission denied (publickey).
Если я сделаю
gcloud alpha cloud-shell ssh
он входит на сервер нормально
Оказывается, Google вызывает scp
не указывал правильное имя пользователя.
Решение Я успешно загрузил, выполнив
/usr/bin/scp -P 6000 -i /Users/me/.ssh/google_compute_engine -o \
StrictHostKeyChecking=no ~/Sites/my-app/bigfile \
cj@35.185.184.136:~/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 cj@127.0.0.1].
[...more debug info...]
^ Обратите внимание, что он добавляется именем пользователя к IP-адресу сервера.
Итак, я скопировал команду scp и добавил свое имя пользователя, и это сработало.
Надеюсь, это поможет другим, пытающимся понять это.
Это должно быть исправлено в последней версии gcloud, которую вы можете получить с помощью runnign gcloud components update
. Спасибо, что попробовали альфу!