Założyłem tunel za pośrednictwem autossh.
To działa:
autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]
Chciałbym uruchomić autossh w tle. Wydaje się łatwe przy użyciu tej -f
opcji.
Nie działa to jednak:
autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]
Autossh działa poprawnie w tle, ale połączenie ssh wydaje się nie działać za każdym razem. W / var / syslog widzę wiele razy:
autossh[3420]: ssh exited with error status 255; restarting ssh
Co ja robię źle? Powszechnie wiadomo, że ma to związek z uwierzytelnianiem za pomocą pliku klucza. Jak mogę to debugować (dodanie opcji -v do opcji ssh nigdzie się nie loguje).
Edycja: Mam dzienniki ssh przy użyciu opcji -y
/usr/bin/ssh[3484]: debug1: Next authentication method: publickey
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_rsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_dsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_ecdsa
/usr/bin/ssh[3484]: debug1: No more authentication methods to try.
/usr/bin/ssh[3484]: fatal: Permission denied (publickey).
autossh[3469]: ssh exited with error status 255; restarting ssh
Wygląda więc na to, że autossh nie akceptuje mojego pliku tożsamości ( -i myIdFile
) przy użyciu opcji -f. Dlaczego?
(autossh 1.4c na Raspian)
ssh
ssh-tunnel
henning77
źródło
źródło
Odpowiedzi:
Wygląda na to, że gdy autossh spada do tła (opcja -f), zmienia katalog roboczy, co oznacza, że ścieżki względne już nie działają. Lub bardziej konkretnie: wpisując bezwzględną ścieżkę pliku identyfikatora prawdopodobnie odniesiesz sukces.
Ponownie utworzyłem scenariusz, tworząc klucz bez hasła w lokalizacji innej niż domyślna:
Po prostu nacisnąłem Enter dwa razy, aby wygenerować klucz, który nie jest chroniony hasłem.
Skopiowałem nowy klucz na mój serwer (który umożliwia obecnie uwierzytelnianie za pomocą hasła):
Najpierw potwierdziłem, że klucz działa z normalnym ssh, a następnie za pomocą autossh takiego jak ty:
Oba działały dobrze, więc odtworzyłem problem, który miałeś:
To nie zadziałało i napisano do
/var/log/syslog
:Zmieniając ścieżkę pliku kluczy na wartość bezwzględną, zadziałało:
Brak błędów w
/var/log/syslog
.źródło
Nie jestem pewien, co się dzieje z opcją -f, ale możesz też tego nie robić:
źródło
nohup
pracował także dla systemuautossh
podrunit
Alpine LinuxDodaj następujące parametry do SSH, aby ominąć „Czy na pewno chcesz kontynuować łączenie (tak / nie)?”
Ostateczne polecenie będzie miało następujący format:
źródło
StrictHostKeyChecking=no
chyba że łączysz się ze znaną dobrą efemeryczną zabawką - i wybierasz leniwość.