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?

dalanmiller
źródło
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

Oxwivi
źródło
@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ć!

kwiksand
źródło
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
użytkownik189643
źródło
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