Jak automatycznie wpisać hasło w .command

1

Tak wygląda mój plik .command

ssh someuser@someip.com

Kiedy uruchamiam właśnie to, monituje mnie o hasło, jak sprawić, by terminal wprowadził hasło zamiast mnie wpisywać? Próbowałem tego:

ssh someuser@someip.com
password

Ale to nie działa.

Hurricane Development
źródło

Odpowiedzi:

1

Możesz przechowywać klucze ssh lub hasło w pliku ~ / .ssh / config (zobacz man ssh_configszczegóły), ale byłoby to trochę oszustwem, ponieważ tak naprawdę nie ma go w pliku .command.

Można oczywiście skrypty dodawać (i opcjonalnie usuwać) wpisy potrzebne do modyfikacji kluczy ssh lub zmian w pliku konfiguracyjnym.

Zrobiłbym prosty skrypt skryptowy - aby poczekać na monit o hasło, a następnie wprowadzić hasło.

#!/usr/bin/expect -f
set bad_idea cleartext_passwords_are_insecure
set timeout -1
# now connect using ssh
spawn ssh user@example.com
expect "*?assword:*"
send -- "$bad_idea\r"
send -- "\r"
expect elf

Nie używasz zmiennej $ bad_idea i możesz po prostu wysłać hasło przed \r

bmike
źródło
1
Klucze ssh to zdecydowanie najlepsza droga. Mają wiele zalet. Możesz zmienić hasło na nich bez dystrybucji nowego klucza publicznego. Brelok zapamiętuje hasło, jeśli chcesz. Po załadowaniu klucza do pamięci jest on zapamiętywany, więc nie trzeba go ponownie wprowadzać. Wszystko to jest kontrolowane, dzięki czemu można dostosować równowagę bezpieczeństwa / wygody. Zdecydowanie klucze ssh!
jsd
@ jsd Chcę znaleźć inne pytanie, abyś mógł odpowiedzieć, jak to zrobić za pomocą klawiszy ssh. To naprawdę najlepszy sposób na osiągnięcie większego celu IMO.
bmike