Der Unterschied zwischen einem Personal Computer und einem Server besteht hauptsächlich in den Spezifikationen und dem Verwendungszweck, und die Grenzen sind mehrdeutiger als erwartet. Tatsächlich können Sie Ihren Computer so verwenden, als wäre er ein Server in einem anderen Netzwerk. Simulieren wir also die Arbeit des Remote-Servers, indem wir mit zwei Computern zu Hause eine SSH-Verbindung von einem zum anderen herstellen.
--Verbindungsquell-PC: Diejenigen, die SSH verwenden können. Das Betriebssystem ist optional. --Destination PC: Ubuntu oder MacBook. Andere Linux-Distributionen haben andere Befehle. Im Fall von Windows sind die Einstellungen unterschiedlich, daher werde ich sie weglassen.
# server ubuntu
$ ip a
...
inet 192.168.X.Y/24 ...
...
# server macbook
$ ifconfig
...
inet 192.168.X.Y netmask 0xffffff00 ...
...
Der obige Befehl zeigt die private IP des verbundenen Netzwerks an. Normalerweise im Format "192.168.X.Y", wobei X und Y Zahlen von 0 bis 255 sind.
Die IP-Adresse ist eine 32-Bit-Nummer. Wenn Sie sie durch eine durch 8 Bit getrennte Nummer darstellen, wird sie zu einer IP-Adresse, die Sie häufig sehen. Da 8 Bits Zahlen von 0 bis 255 darstellen, sind 4 Zahlen in diesem Bereich die IP-Adresse.
Wenn es ein / 24
gibt, bedeutet dies, dass die ersten 24 Bits der IP-Adresse innerhalb der Gruppe festgelegt sind. Das heißt, die ersten drei Zahlen sind fest und die letzten Zahlen sind unterschiedlich.
netmask 0xffffff00
drückt dasselbe aus. Das heißt, wenn das feste Bit hexadezimal geschrieben ist, so dass das feste Bit 1 und der variable Teil 0 ist, ist dies der Fall.
Ich war mir nicht sicher, warum private Adressen normalerweise mit "192.168" beginnen.
Im Ausgangszustand ist eine SSH-Verbindung von außen nicht möglich. Lassen Sie es uns mit "Ping" überprüfen.
#Verbindungsquelle
$ ping 192.168.X.Y
Request timeout for icmp_seq 0
...
Geben Sie für "X" und "Y" die Werte ein, die Sie zuvor bestätigt haben. Dieses Ergebnis bedeutet, dass Sie nicht auf die IP zugreifen können.
Versuchen Sie daher, den SSH-Dienst am Verbindungsziel zu starten.
#Stellen Sie eine Verbindung zu Ubuntu her
$ sudo apt-get install -y openssh-server
Wenn Sie "openssh-server" installieren, wird der SSH-Dienst automatisch gestartet. Sie können dies mit dem folgenden Befehl überprüfen.
#Stellen Sie eine Verbindung zu Ubuntu her
$ sudo systemctl status ssh
...
Active: active (running)
...
Der SSH-Dienst wird beim nächsten Start Ihres PCs automatisch gestartet. Wenn Sie den automatischen Start stoppen möchten, scheint es die folgende Methode zu geben (Referenz) ..
Benennen Sie die Datei ssh.conf
mit dem folgenden Befehl um (stellen Sie den Namen für den automatischen Start wieder her).
$ sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
Kommentieren Sie den Teil zum automatischen Start in / etc / init / ssh.conf
aus
...
#start on filesystem or runlevel [2345]
...
Wählen Sie unter Systemeinstellungen> Freigabe "Remote-Anmeldung" aus und wählen Sie einen zugänglichen Benutzer aus (Referenz. -access-your-mac-mchlp1066 / mac)). Ein Bildschirm wie der folgende. Es lehrt höflich SSH-Befehle.
Versuchen Sie es jetzt erneut mit "Ping".
$ ping 192.168.X.Y
64 bytes from 192.168.10.224: icmp_seq=0 ttl=64 time=108.883 ms
...
Wenn alles gut geht, können Sie den Zugriff auf die IP sehen.
Die Verbindungsmethode ist dieselbe wie bei einem normalen Server.
#Verbindungsquelle
$ ssh <user>@192.168.X.Y
Da normale PCs über ein Passwort verfügen, werden Sie danach häufig nach Ihrem Passwort gefragt. Sie sollten in der Lage sein, eine Verbindung herzustellen, indem Sie das Anmeldekennwort eingeben, das Sie normalerweise am Verbindungsziel verwenden.
Beim Starten des SSH-Dienstes ist das Kennwort der einzige Schutz vor unbefugtem Zugriff. Durch Festlegen einer Firewall am Verbindungsziel können Sie die Zugriffsmethode einschränken.
Überprüfen Sie den aktuellen Status der Firewall.
$ sudo ufw status
Status: inactive
"inaktiv" bedeutet, dass die Firewall nicht konfiguriert ist.
Erstens ist der Zugriff grundsätzlich verboten und nur SSH ist zulässig.
$ sudo ufw default deny
$ sudo ufw allow ssh
$ sudo ufw enable
Dies verhindert den Zugriff auf etwas anderes als SSH (Port 22). Sie können dies mit dem folgenden Befehl überprüfen.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Um die Sicherheit zu erhöhen, können Sie die Quelle auf dasselbe Netzwerksegment beschränken.
$ sudo ufw reset
$ sudo ufw default deny
$ sudo ufw allow from 192.168.X.0/24 to any port ssh
$ sudo ufw enable
Ersetzen Sie "X" durch die Nummer der bestätigten IP-Adresse. / 24
erlaubt den Zugriff nur von Netzwerken, in denen die ersten 24 Bits (drei Zahlen) dieser IP übereinstimmen.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 192.168.10.0/24
Sie kann auf der Registerkarte "Firewall" unter Systemeinstellungen> Sicherheit und Datenschutz festgelegt werden. Wenn Sie den SSH-Zugriff zulassen, wird anscheinend automatisch nur auf den SSH-Port zugegriffen.