Ich möchte die Verbindung zu bestimmten Servern beschleunigen.
Ich habe die Server sagen wir mal:
123.123.123.1
123.123.123.2
123.123.123.3
Normalerweise verbinde ich mich mit:
ssh -p 12345 my_user@123.123.123.1
Dies ist ein Schmerz, weil der einzige Unterschied zwischen den Servern die letzte Nummer der IP ist.
Ich habe den folgenden Code ausprobiert:
alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'
Ich erhalte jedoch eine Fehlermeldung:
karl@karls-laptop ~/scripts $ ssht 1
Pseudo-terminal will not be allocated because stdin is not a terminal.
Gibt es eine Möglichkeit, dies zum Laufen zu bringen?
123.123.123.1 host1
Verwendenssh myuser@host1 -p12345
Antworten:
Dies erfordert eine Funktion - einfach und robust, während eine
alias
in diesem Fall zerbrechlich wäre.So etwas sollte funktionieren:
Die Bedingung
[[ $1 =~ ^(1|2|3)$ ]]
stellt sicher, dass Sie eines von 1, 2, 3 als erstes Argument eingegeben haben (jedes nachfolgende Argument wird ignoriert).Jetzt können Sie das gewünschte letzte Oktett als erstes Argument angeben:
Stellen Sie dies in Ihr
~/.bashrc
Konto, damit es in jeder interaktiven Sitzung verfügbar ist.quelle
exit
mitreturn
und den Benutzer enthaltenmy_user
. :)octet=$1; [[ $octet =~ ^[0-9]+$ ]] && [[ $octet -lt 255 ]] && [[ $octet -gt 0 ]] && ssh -p <portNumber> user@hostname
~/.ssh/config
DateiVerwenden Sie den beabsichtigten Weg und schreiben Sie die Optionen und Aliase in
~/.ssh/config
:und so weiter...
Und dann einfach mit verbinden
quelle
Host 123.123.123.*
angeben, die den Port und den Benutzernamen angibt!Sie können Muster in verwenden
~/.ssh/config
. Vonman ssh_config
:Kombiniert mit:
Also, in dein
~/.ssh/config
, setze:Dann:
quelle
Verwenden Sie stattdessen eine Funktion:
Eine bessere Lösung ist die Verwendung einer ssh-
config
Datei:mit einigen Zeilen ähnlich:
Sie können auch ssh-Schlüssel verwenden, um die Geschwindigkeit zu verbessern. Schließlich führen Sie nur Folgendes aus:
und Sie sind mit diesem Server verbunden.
quelle
.bashrc
oder es.bash_func
dann in Ihre.bashrc
Datei einfügen.Sie müssen nicht einmal einen Namen wie ssht verwenden. Namen, die mit Ziffern beginnen, auch nur Ziffern, sind gültige Hostnamen in der ssh-Konfigurationsdatei.
Unten arbeitet an Xubuntu Xenial
Ein Teil meiner ~ / .ssh / config
Befehl, den ich ausführe (unten habe ich standardmäßig eine
-vv
ausführliche Protokollierung aufSTDOUT
Ihrem Bildschirm hinzugefügt )Ausgabe
Update - unten ist eine hackige alternative Lösung, nehmen Sie es nur für bashistische Übungen, vielleicht für schnelle und schmutzige Sachen:
Was es macht
-L
,-R
,-D
), ausführlichen Modus (-vv
), nicht-TTY (-T
) usw.Zum Beispiel möchte ich einen Socken-Proxy ohne Terminal starten
Wie Sie sehen können, ist es keine Eingabeaufforderung ausgeführt mit
-vv
,-T
,-D 1080
Argumente.Ich kann den Tunnel (im Grunde SOCKS5-Proxy) auch auf meinem Computer überprüfen
quelle