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.