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

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

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

1 ответ1

1

GCE ssh использует аутентификацию с открытым ключом, а не пароли, поэтому у вас есть следующие опции:

  1. используйте gcloud compute copy-files как описано в этом ответе. Это, вероятно, проще, поскольку позволит вам указывать проекты и имена хостов символически, так как IP-адреса могут измениться.

  2. используйте sftp как описано в этом ответе, а именно:

    sftp -o IdentityFile ~/.ssh/google_compute_engine user@host
    
  3. используйте ssh но с полным путем к файлу ключа, зарегистрированному в GCE. Эта команда выводится на печать при запуске gcloud compute ssh <instance> поэтому вы можете просто скопировать и вставить ее и использовать позже. Это должно напоминать следующее:

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

    Обратите внимание, что здесь вам придется использовать точные IP-адреса, поэтому рассмотрите возможность использования статических IP-адресов или DNS, чтобы создать постоянное имя для возможно меняющихся IP-адресов (если вы используете динамические IP-адреса).

    Вы можете прочитать больше в документации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .