Mój serwer logowania znajduje się za zaporą ogniową, która wykorzystuje przełączanie portów, aby umożliwić wejście. Przepływ logowania jest
- Wprowadź polecenie pukania do portu. Wymaga to podania mojego zewnętrznego adresu IP.
- Po wyświetleniu monitu wprowadź moje hasło do portu.
- Wpisz polecenie ssh
- Wpisz hasło
Mogę uzyskać pozwolenie na używanie kluczy ssh, ale próbuję napisać skrypt, który pozwoli mi skrócić czas logowania, ponieważ muszę przejść przez ten przepływ dla każdej powłoki, którą chcę wywołać.
#!/bin/expect
spawn fwknop -A tcp/22 -a `curl http://ipecho.net/plain` -D foo.org -P tcp -p 9999
expect "Enter encryption password:"
send "pass1\r"
spawn ssh -Y bar@foo.org
expect "bar@foo.org's password:"
send "pass2\r"
Uruchomienie każdego polecenia działa poprawnie z wiersza poleceń. Ale kiedy próbuję uruchomić pierwsze polecenie spawn
spawn fwknop -A tcp/22 -a `curl http://ipecho.net/plain` -D foo.org -P tcp -p 9999
Dostaję błąd:
fwknop: fko_set_spa_message: Error 10 - Invalid allow IP address in the SPA message data
send: spawn id exp7 not open
Ale skopiuj / wklej to samo polecenie do wiersza polecenia działa doskonale.
-a
przełącznik (lub podasz podejrzany adres IP)?