Google Compute Engine - SSH или RSYNC без пароля

2154
speedplane

У меня есть несколько экземпляров Google Compute Engine (GCE). У меня есть несколько сценариев, которые извлекают информацию (файлы журналов и т. Д.) Из этих экземпляров, и несколько других, которые отправляют файлы. Я хотел бы автоматизировать больше этого, но каждый раз, когда я подключаюсь к экземпляру вычислительного движка, мне нужно ввести свой пароль.

Как мне настроить rsync или ssh, чтобы мне не нужен пароль или, как альтернатива, как мне ввести пароль в эти программы?

Обратите внимание, что это было первоначально размещено в SO, но затем перенесено сюда.

0
GCE что-то особенное? Есть _quite_ несколько [существующих сообщений] (http://superuser.com/questions/8077/how-do-i-set-up-ssh-so-i-dont-have-to-type-my-password) говорить о SSH-соединениях без пароля с использованием аутентификации с открытым ключом. grawity 9 лет назад 2

1 ответ на вопрос

1
Misha Brukman

GCE ssh uses public key authentication, not passwords, so you have the following options:

  1. use gcloud compute copy-files as described in this answer. This is likely easier as it will allow you to specify projects and host names symbolically, as the IP addresses may change.

  2. use sftp as described in this answer, namely:

    sftp -o IdentityFile ~/.ssh/google_compute_engine user@host 
  3. use ssh but with a full path to the key file registered with GCE. This command is printed out when you run gcloud compute ssh <instance> so you can just copy-paste it and use it later. It should resemble the following:

    ssh -i ~/.ssh/google_compute_engine \ -o UserKnownHostsFile=/dev/null \ -o CheckHostIP=no \ -o StrictHostKeyChecking=no \ USER@IP_ADDRESS 

    Note that here you will have to use exact IP addresses here, so consider either using static IP addresses or DNS to create a constant name for possibly-varying IP addresses (if you're using dynamic IPs).

    You can read more in the documentation.

Похожие вопросы