SSH!
SSH ist der Befehl Gottes - ich denke, es ist der wertvollste Befehl, den man lernen kann. Die Optionen können ziemlich entmutigend sein, aber es scheint, als würde ich ständig lernen, neue Befehlszeilenoptionen für SSH zu verwenden, die ich nie für notwendig gehalten hätte. Vielleicht habe ich sie zu diesem Zeitpunkt alle benutzt.
Je mehr Sie es verwenden, desto mehr lernen Sie darüber. Sie können es verwenden, um einige erstaunliche Dinge zu tun.
Hinweis: ALLE diese Dinge können per Fernzugriff ohne Einrichtung auf Ihrem Server ausgeführt werden, es sei denn, der SSH-Server läuft.
Hängen Sie ein Dateisystem über das Internet ein
Durchsuchen Sie das Netz nach SSHFS
Befehle weiterleiten .
Das SVN + SSH-Protokoll ist Subversion von einem Remote-Client zu einem Server, auf dem NO DEAMON ausgeführt wird! Der SVN-Befehl startet den Server über die ssh-Shell und leitet die Informationen über die vorhandene Pipe hin und her. Das rsync-Programm führt dasselbe aus: Es wird auf einem Server ohne rsync-Deamon ausgeführt, indem es selbst über SSH gestartet wird. Es ist einfach, eigene Bash-Dateien zu schreiben, um ähnliche Tricks auszuführen.
Kette um durch Firewalls zu kommen
Ich benutze dies die ganze Zeit, um von meinem Linux-Server zu Hause zu meinem Mac zu springen.
Forward-Ports:
Scheint nur mäßig nützlich zu sein, bis Sie feststellen, dass Sie von zu Hause aus über Ihre Heim-Firewall springen und Ihren Router so konfigurieren können, als würden Sie dies von Ihrem Heimnetzwerk aus tun.
X-Anfragen weiterleiten:
Dies ist ein weiterer erstaunlicher. Mit oder ohne einen X-Server, der auf Ihrem Remote-System ausgeführt wird, können Sie ein x-windows-Programm ausführen, und das Fenster wird auf Ihrem lokalen Bildschirm angezeigt. Benutze einfach den Schalter -X, das ist alles!
Da auf Ihrem Remote-Server kein X-Server ausgeführt werden muss, ist die CPU-Belastung auf Ihrem Server minimal. Sie können einen TINY Linux-Server verwenden, der auf Ihrem leistungsstarken Spiel-PC mit Windows und Cygwin / X riesige Apps bereitstellt.
Natürlich funktionieren VI und EMACS über SSH, aber wenn ich zu Hause laufe, möchte ich manchmal mehr. Ich benutze ssh -X, um eine Kopie von Eclipse zu starten! Wenn Ihr Server leistungsstärker ist als Ihr Laptop, befindet sich die grafische Benutzeroberfläche direkt auf Ihrem Laptop. Die Kompilierung wird jedoch auf Ihrem Server ausgeführt. Sorgen Sie sich also nicht um die Systemlast.
In Batch-Dateien ausführen
(was bedeutet, dass Sie eine lokale Batch-Datei ausführen, die auf anderen Systemen "Sachen macht"):
Zwei Dinge verbinden sich, um dieses cool zu machen. Zum einen können Sie Passwortabfragen mit (sichereren) Verschlüsselungsschlüsseln umgehen. Der zweite ist, dass Sie einen Befehl in der SSH-CLI angeben können. Ich habe dies auf einige interessante Arten verwendet: Wenn eine Kompilierung auf dem Remote-Server fehlschlägt, würde ich sie über SSH auf meinem Computer speichern und eine Sounddatei abspielen.
Denken Sie daran, dass Sie die Ausgabe des Remote-Befehls umleiten und in Ihrer lokalen Batch-Datei verwenden können, sodass Sie möglicherweise auch eine auf Ihrem Server ausgeführte Kompilierung lokal überwachen können.
Eingebaut in Mac
Sowohl Server als auch Client sind in Mac und Linux integriert. Im Falle von Mac und Ubuntu ist das Aktivieren eines Servers so einfach wie das Finden des richtigen Kontrollkästchens.
Auf einem PC Cygwin oder Cygwin / X installieren (Mit Cygwin / X können Sie Ihre X-Window-Ausgabe von Ihrem Linux-Computer auf Ihren Windows-PC weiterleiten - es installiert einen X-Server)
Wichtige Tipps / Konfigurationsdatei
Verwenden Sie niemals Port 22 in Ihrer Firewall. Sie werden eine Menge Hackversuche bekommen, es lohnt sich einfach nicht. Lassen Sie Ihre Firewall einfach einen anderen Port an Ihren Server weiterleiten.
Es gibt umfangreiche Konfigurationsoptionen, mit denen Sie Ihre ssh-Befehle erheblich vereinfachen können. Hier ist ein Beispiel von mir bei der Arbeit:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
Wenn ich "ssh home" eingebe (sonst nichts), verhält es sich so, als hätte ich Folgendes eingegeben:
ssh -p 12345 bill@billshome.hopto.org
und leitet dann meinen lokalen Port 1025 an mein System "mac" zu Hause weiter. Der Grund dafür ist, dass ich einen anderen Eintrag in meiner Datei habe:
Host mac
hostname localhost
port=1025
Wenn ich ein "ssh home" gemacht habe und das Fenster noch geöffnet ist, kann ich "ssh mac" eingeben, und der hier arbeitende Computer versucht tatsächlich, eine Verbindung zu seinem eigenen Port 1025 herzustellen, der an "mac" weitergeleitet wurde: 22 "über den anderen Befehl, damit er zu Hause über die Firewall eine Verbindung zu meinem Mac herstellt.
Bearbeiten - cooles Skript!
Ich habe ein altes Drehbuch ausgegraben, das ich einfach liebe - musste zurückkommen und es für jeden hier posten, der interessiert sein könnte. Das Skript heißt "authMe"
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
Wenn Sie dieses Skript in Ihrem Home-Verzeichnis haben und einen Host haben, zu dem Sie eine Verbindung herstellen können (über ssh), können Sie "./authMe hostName" eingeben.
Bei Bedarf wird ein öffentliches / privates Schlüsselpaar für Sie erstellt, dann wird ssh auf den anderen Computer übertragen und Ihr öffentlicher Schlüssel kopiert (der Befehl ssh fordert Sie zur Eingabe eines Kennworts auf ...).
Danach sollte der SSH-Befehl nicht mehr nach Ihrem Kennwort fragen, wenn Sie eine Verbindung zu diesem Remote-System herstellen. Er verwendet das öffentliche / private Schlüsselpaar.
Wenn Ihr Remotecomputer nicht immer sicher ist, sollten Sie nach Aufforderung eine Passphrase festlegen.
Möglicherweise möchten Sie auch den SSH-Server am anderen Ende so konfigurieren, dass aus Sicherheitsgründen keine Textkennwörter (nur Schlüssel) zugelassen werden.