Jak mogę automatycznie uruchomić tunel SSH -D przy logowaniu do serwera proxy SOCKS?


9

Wiem, że jeśli chcę uruchomić tunel SSH

ssh -d 9000 user@userserver

Jest to jedno rozwiązanie dla tunelu dynamicznego otwieranego na porcie 9000 dla użytkownika o nazwie „użytkownik” na hoście „serwer użytkownika”

Jak jednak mogę zautomatyzować ten proces w systemie Ubuntu, aby nie musiałem otwierać terminala przy każdym logowaniu i uruchomieniu tunelu? Chcę być zalogowany SSH.

Wiem, że mogłem utworzyć plik bash, ale czy nie musiałbym przechowywać hasła użytkownika serwera w postaci zwykłego tekstu, ponieważ po pierwszym poleceniu zostałbym o niego poproszony?


3
Można ustawić klucze SSH zamiast przy użyciu hasła (patrz pkeck.myweb.uga.edu/ssh ), ale bez względu na to w jaki sposób skonfigurować to będzie narażania bezpieczeństwa jeśli zautomatyzować logowanie do ...
— LassePoulsen

Nie do końca na twoje pytanie, ale zalecam spróbować użyć sshuttledo routingu Internetu przez SSH. Nie rozwiązuje problemów z logowaniem bez hasła.
— Oxwivi

Jeśli skonfigurowałeś SSH bez hasła, tak jak odpowiedziałem, sshuttlemożna go również sshuttleuruchomić automatycznie (uwaga, do uruchomienia wymagane są uprawnienia administratora).
— Oxwivi

Odpowiedzi:


9
  1. Skonfiguruj logowanie SSH bez hasła zgodnie z następującą odpowiedzią :

    • ssh-keygen (pojawi się monit o podanie hasła, pozostaw puste)

    • ssh-copy-id user@userserver (wprowadź hasło logowania SSH po raz ostatni)

  2. Dodaj wpis startowy dla SSH:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


@Stefano, dziękuję! Połowa zasług przypada Rinzwindowi i Marco, którzy przede wszystkim oświecili mnie na temat SSH bez hasła!
— Oxwivi

1

Co powiesz na użycie konfiguracji klucza ssh, zgodnie z sugestią Source Lab, ale skonfigurowanie klucza za pomocą frazy hasła i upewnienie się, że ssh-agent działa na komputerze, więc należy go wprowadzić tylko raz na sesję logowania.

Jest kilka zalet robienia tego w ten sposób: - Możesz uzyskać zautomatyzowane logowanie bez hasła (oprócz pierwszego rozruchu / logowania) za każdym razem, gdy wydajesz polecenie ssh - Twój klucz ma hasło, więc jest bezpieczniejszy - Używanie kluczy pub / private jest bardzo standard i będą obsługiwane przez większość instalacji serwera SSH

Aby skonfigurować uwierzytelnianie klucza SSH:

Aby użyć ssh-agent / keychain (do buforowania hasła podczas sesji logowania):

Jeśli chodzi o automatyzację tworzenia tunelu podczas uruchamiania, jednym z pomysłów może być utworzenie szybkiego skryptu powłoki, który uruchamia tunel:

~$ sudo cat <<EOF >> /usr/local/bin/start_tunnel.sh
ssh-add # ensure key is added to agent
ssh -D 9000 user@userserver # substitute real server in here (of course)
EOF
~$ chmod +x /usr/local/bin/start_tunnel.sh

Następnie dodaj go jako program startowy (System -> Preferencje -> Aplikacje startowe), i tak powinien działać!


Czy można to zrobić za pośrednictwem sekcji proxy sieci w ustawieniach w Ubuntu? Istnieje opcja weryfikacji użytkownika i możesz wstępnie wprowadzić swoją nazwę użytkownika i hasło? Na wypadek gdyby moje ustawienia kiedykolwiek się zmieniły, nie chciałbym wchodzić i reditować pliku.
— dalanmiller

Obawiam się, że to nie działa, nawet z autossh.
— skerit


-1
sudo ssh-keygen #type Enter everywhere
sudo cat /home/root/.ssh/ id_dsa.pub >> .ssh/authorized_keys

/etc/rc.local dodaj ciąg:

echo "ssh socks 192.168.0.1:8000" ; sudo ssh -fND 192.168.0.1:8000 localhost

Należy pamiętać, że konfiguracja klucza ssh jest dedykowana. Ślepe przyjmowanie wszystkich podpowiedzi bez czytania, co się dzieje, może zagrozić twojej usłudze / systemowi.
— Braiam
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.