Wie kann ich einen SSH-D-Tunnel beim Anmelden für einen SOCKS-Proxy automatisch starten?

9

Ich weiß das, wenn ich einen SSH-Tunnel starten möchte

ssh -d 9000 user@userserver

Dies ist eine Lösung für das Öffnen eines dynamischen Tunnels an Port 9000 für einen Benutzer mit dem Namen "Benutzer" auf dem Host "Benutzerserver".

Wie kann ich diesen Prozess jedoch in Ubuntu automatisieren, damit ich nicht jedes Mal ein Terminal öffnen muss, wenn ich mich anmelde und den Tunnel starte? Ich möchte SSH sein, sobald ich mich anmelde.

Ich weiß, dass ich eine Bash-Datei erstellen könnte, aber müsste ich das Passwort meines Serverbenutzers nicht im Klartext speichern, da ich nach dem ersten Befehl dazu aufgefordert würde?

Dalanmiller
quelle
3
Sie können SSH-Schlüssel einrichten , anstatt ein Kennwort zu verwenden (siehe pkeck.myweb.uga.edu/ssh ), aber egal wie Ihr Setup ist, Sie gefährden die Sicherheit, wenn Sie die Anmeldungen automatisieren ...
LassePoulsen
Nicht genau zu Ihrer Frage, aber ich empfehle Ihnen, sshuttledas Internet über eine SSH weiterzuleiten. Es löst keine kennwortlosen Anmeldeprobleme.
Oxwivi
Wenn Sie ein passwortloses SSH eingerichtet haben, wie ich geantwortet habe, sshuttlekann es auch automatisch gestartet werden (Hinweis: sshuttleZum Ausführen sind Administratorrechte erforderlich).
Oxwivi

Antworten:

9
  1. Richten Sie ein passwortloses SSH-Login gemäß dieser Antwort ein :

    • ssh-keygen (Sie werden aufgefordert, ein Passwort einzugeben. Lassen Sie das Feld leer.)

    • ssh-copy-id user@userserver (Geben Sie Ihr SSH-Login-Passwort zum letzten Mal ein.)

  2. Fügen Sie einen Starteintrag für SSH hinzu:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Oxwivi
quelle
@Stefano, danke! Die Hälfte des Kredits geht an Rinzwind und Marco, die mich in erster Linie über passwortloses SSH aufgeklärt haben!
Oxwivi
1

Wie wäre es, wenn Sie ein SSH-Schlüssel-Setup verwenden, wie von Source Lab vorgeschlagen, aber Ihren Schlüssel mit einer Passphrase einrichten und sicherstellen, dass der SSH-Agent auf Ihrem Computer ausgeführt wird, sodass er nur einmal pro Anmeldesitzung eingegeben werden muss.

Auf diese Weise gibt es einige Vorteile: - Sie können sich automatisch kennwortlos anmelden (abgesehen vom ersten Booten / Anmelden), wenn Sie Ihren ssh-Befehl eingeben. - Ihr Schlüssel hat eine Passphrase, daher ist es sicherer. - Die Verwendung von Pub- / privaten Schlüsseln ist sehr wichtig Standard und wird von den meisten SSH Server-Installationen unterstützt

So richten Sie die SSH-Schlüsselauthentifizierung ein:

So verwenden Sie ssh-agent / keychain (um die Passphrase während der Anmeldesitzung zwischenzuspeichern):

Um die Tunnelerstellung beim Start zu automatisieren, könnte eine Idee darin bestehen, ein schnelles Shell-Skript zu erstellen, das den Tunnel startet:

~$ 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

Dann füge es als Startprogramm hinzu (System -> Einstellungen -> Startanwendungen), sollte sowieso funktionieren!

kwiksand
quelle
Gibt es überhaupt eine Möglichkeit, dies über den Netzwerk-Proxy-Bereich der Einstellungen in Ubuntu zu tun? Es gibt eine Option zur Benutzerüberprüfung und Sie können Ihren Benutzernamen und Ihr Passwort vorab eingeben. Nur für den Fall, dass sich meine Einstellungen jemals ändern, möchte ich die Datei nicht erneut bearbeiten müssen.
Dalanmiller
Ich fürchte, das funktioniert nicht, auch nicht mit Autossh.
Skerit
-1
sudo ssh-keygen #type Enter everywhere
sudo cat /home/root/.ssh/ id_dsa.pub >> .ssh/authorized_keys

/etc/rc.local Zeichenfolge hinzufügen:

echo "ssh socks 192.168.0.1:8000" ; sudo ssh -fND 192.168.0.1:8000 localhost
user189643
quelle
Bitte beachten Sie, dass die Einrichtung eines SSH-Schlüssels vorgesehen ist. Das blinde Akzeptieren aller Eingabeaufforderungen, ohne zu lesen, was gerade getan wird, kann Ihren Dienst / Ihr System gefährden.
Braiam