Wyślij hasło przez stdin w `ssh-copy-id`

11

Muszę zautomatyzować niektóre wdrożenia tożsamości, najlepiej przy użyciu ssh-copy-id.

Próbuję podać hasło przez stdin, co jest możliwe przy sshużyciu -Sflagi. Wiem, że mogę wysłać dodatkowe opcje sshużywania -oflagi w ssh-copy-idpoleceniu, jednak nie ma przykładów użycia tej flagi na stronie man.

Więc próbowałem przekazać hasło SSH ssh-copy-idprzez stdin przy użyciu:

$# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S"

Ale wszystko co dostaję to:

/bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s

EDYTOWAĆ:

Próbuję podać hasło przez stdin, co jest możliwe przy sshużyciu -Sflagi.

To stwierdzenie jest błędne. Właściwie przeczytałem tę flagę od sudoczłowieka;

2grit
źródło

Odpowiedzi:

15

Możesz spróbować zainstalować sshpass i zmienić swoje połączenie na ssh-copy-id:

sshpass -p "$TMP_PASS" ssh-copy-id
dhag
źródło
lol, nie na komputerze Mac, a kiedy brew installjest podejmowana próba, pojawia się komunikat „Błąd: brak dostępnej formuły o nazwie„ sshpass ”. Nie dodamy sshpass, ponieważ zbyt początkującym użytkownikom SSH zbyt łatwo psuje bezpieczeństwo SSH”.
tofutim
Są instrukcje, jak zainstalować go z homebrew na osx tutaj gist.github.com/arunoda/7790979#installing-with-homebrew Wystarczy uruchomićbrew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
ewatt
2

Gdzie znalazłeś informacje o -Sopcji? Robi coś zupełnie innego! Służy do multipleksowania i ControlPath.

SSH nie zaakceptuje haseł na stdin kiedykolwiek , więc należy wstępnie zainstalować autoryzowanych kluczy w sposób rozmieszczenia (preferowane) lub użytkowania sshpasslub expectskryptu jak opisano w wielu innych kwestiach.

Jakuje
źródło
Cholera masz rację! Właśnie zdałem sobie sprawę, że -Sflaga pochodzi z sudo: S
2grit
Jeśli chcę zainstalować klucze na 100 hostach, używając ssh-copy-id, mając na uwadze, że wszystkie hosty mają już domyślną nazwę użytkownika i hasło, jak uniknąć pytania ssh-copy-id za każdym razem o to samo hasło?
realtebo
Na to już odpowiedziano w obu odpowiedziach - użyj sshpass, jeśli musisz lub oczekujesz skryptu.
Jakuje,