Mam kilka wystąpień Google Compute Engine (GCE). Mam kilka skryptów, które pobierają informacje (pliki dziennika itp.) Z tych instancji, oraz kilka innych, które wypychają pliki. Chciałbym zautomatyzować więcej z tego, ale za każdym razem, gdy łączę się z instancją silnika obliczeniowego, muszę wprowadzić hasło.
Jak skonfigurować rsync lub ssh, aby nie potrzebować hasła, lub alternatywnie, jak wprowadzić moje hasło do tych programów?
Zauważ, że to zostało pierwotnie opublikowane w SO, ale potem przeniesione tutaj.
ssh
passwords
rsync
google-compute-engine
szybowiec
źródło
źródło
Odpowiedzi:
GCE ssh wykorzystuje uwierzytelnianie za pomocą klucza publicznego, a nie hasła, więc masz następujące opcje:
używać
gcloud compute copy-files
zgodnie z opisem w tej odpowiedzi . Jest to prawdopodobnie łatwiejsze, ponieważ pozwoli ci symbolicznie określać nazwy projektów i hostów, ponieważ adresy IP mogą się zmieniać.użyj
sftp
zgodnie z opisem w tej odpowiedzi , a mianowicie:użyj,
ssh
ale z pełną ścieżką do pliku klucza zarejestrowanego w GCE. To polecenie jest drukowane po uruchomieniu,gcloud compute ssh <instance>
więc możesz po prostu skopiować i wkleić je i użyć później. Powinien przypominać następujące:Pamiętaj, że tutaj musisz użyć dokładnych adresów IP, więc zastanów się nad użyciem statycznych adresów IP lub DNS, aby utworzyć stałą nazwę dla możliwie różnych adresów IP (jeśli używasz dynamicznych adresów IP).
Możesz przeczytać więcej w dokumentacji .
źródło