Was ist der beste Weg, um Maschinen im lokalen Netzwerk mit SSH zu versorgen?

61

Ich habe 2 Computer, einen, den ich benutze und einen für die Kinder. Ich möchte in der Lage sein, in ihren Computer zu ssh, um ihn zu steuern (wie es herunterzufahren usw.), aber ich bin neugierig, der beste Weg, dies zu tun. Wir sind beide im selben Haus und teilen uns die gleiche Internetverbindung.

Was wäre der beste Weg, dies zu tun? Aus der Forschung habe ich gelesen, dass ich openssh-server auf dem Remote-Computer installieren soll, bin aber ratlos, was ich für den Hostnamen verwenden soll, wenn ich versuche, eine Verbindung herzustellen. Normalerweise ist es für VPS die externe IP, aber da wir beide eine WLAN-Verbindung teilen, ist es dann die Hardware-IP? Sollten wir eine direkte Verbindung über LAN oder über das Internet herstellen?

dukevin
quelle

Antworten:

58

Lauf:

avahi-browse -tl _workstation._tcp

Um eine Liste der Ubuntu-Workstations im lokalen Netzwerk zu erhalten, können Sie eine Verbindung zu ihnen herstellen, indem Sie Folgendes ausführen:

ssh <username>@<computer-name>.local
Eric Carvalho
quelle
7
Hinweis: Für avahi-browsemüssen Sie das avahi-utilsPaket installieren (das auch avahi-daemonden Dienst einbezieht, der die lokale Adressierbarkeit bereitstellt).
Piskvor
2
@ Piskvor Guter Punkt. Dieses Paket ist bereits standardmäßig in Ubuntu Desktop installiert, aber ich kenne keine anderen Varianten (kubuntu, lubuntu usw.). Wenn es nicht installiert ist, führen Sie es einfach aus sudo apt-get install avahi-utils.
Eric Carvalho
Wäre es also notwendig, einen SSH-Server einzurichten, oder führt Ubuntu 14.04 standardmäßig einen aus?
Tobi
1
Der @ tobi-SSH-Server ist nicht standardmäßig installiert. Sie müssen es installieren.
Eric Carvalho
2
Die Liste scheint leer zu sein, nachdem ich ausgeführt habe avahi. Beide Computer sind mit demselben Router verbunden
Jose Ospina
15

Sie können die IP-Adresse verwenden, um in den Computer des Kindes zu sshen. Wenn Sie den Computernamen verwenden möchten, bearbeiten Sie die Datei / etc / hosts so, dass sie den Computernamen enthält.

192.168.1.104  dad
192.168.1.105  kids
Ed Manet
quelle
12
Sie müssen darauf hinweisen, dass die IPs den Computern statisch zugewiesen werden müssen.
Alaa Ali
3
Sie können die Aktivierung sshnach Namen vornehmen, ohne die Hosts-Datei zu bearbeiten, indem Sie die Hosts folgendermaßen benennen ~/.ssh/config: howtogeek.com/75007/…
Nathan Long,
@ NathanLong - Schöner Tipp! Man könnte jedoch argumentieren, dass man mit der Hosts-Datei auf jeden Dienst zugreifen kann (falls dies gewünscht ist).
Stefgosselin
9

Überprüfen Sie vor dem Ausführen von ssh, ob ssh-Client und -Server vorhanden sind. Wenn Sie diesen Dienst nicht installiert haben

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Wenn du es schon getan hast

 ssh username@ipaddress

 Enter connecting device login password.

Beispiel:

 ssh [email protected]

 [email protected]'s password:********

Wenn Sie einen Fehler wie "Berechtigung verweigert, versuchen Sie es erneut."

Bitte überprüfen Sie den Benutzernamen und die IP-Adresse zweimal.

PAC
quelle
8

Ich verwende die Datei ~ / .ssh / config, die ssh automatisch analysiert. Hier ein Beispiel:

Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p

KeepAlive yes 
ServerAliveInterval 60
ServerAliveCountMax 10
ControlPersist 1h

Host server1
        User user1
        HostName server1-web.example.org

Host server2
        User user2
        HostName server2-db.example.org
        Compression yes
        IdentityFile /home/user/.ssh/different_key.pem

Beachten Sie, dass Sie jede (clientseitige) Variable in dieser Datei verwenden und entweder global oder pro Server festlegen können.

Shadok
quelle
Wie konfiguriert man dann die DNS-Einrichtung einer Heim-Internet-Gateway-Appliance für die Zuordnung server1-web.example.orgund Zuordnung server2-db.example.orgzu den jeweiligen Servern?
Damian Yerrick
5
  1. Sie können direkt zu einer lokalen IP-Adresse senden, sofern Ihr LAN beispielsweise statische IP-Adressen verwendet
    ssh [email protected]

  2. Sie können die Hosts-Datei auf beiden Computern bearbeiten, wie von Ed Manet in seiner Antwort erwähnt . Auf diese Weise können Sie dann den Hostnamen des Computers verwendenssh someuser@some_hostname

  3. Sie können einen lokalen DNS-Server einrichten, um die Hosts Ihres LANs aufzulösen. Auf diese Weise können Sie den Hostnamen des Computers wie in Option 2 verwenden, aber zusätzlich vermeiden, dass jede Hostdatei bearbeitet wird, indem Sie in den Netzwerkeinstellungen von Ubuntu auf Ihren DNS-Server verweisen.

DNSMasq ist ein ziemlich guter DNS-Server, der einfach einzurichten ist.
Eine andere Option ist BIND .

Stef K
quelle
3

Verwenden Sie die lokale LAN-IP-Adresse. Bei der alternativen Vorgehensweise muss ein Port für das Internet geöffnet sein, damit Sie sich anmelden können.

Außerdem benötigen Sie eine Portzuordnung (auf dem Router). Wenn Sie Ihre "öffentliche" IP-Adresse (auf dem Router) als Ziel verwenden, wird keine Verbindung zu einem Ihrer beiden PCs hergestellt.


Am einfachsten ist es, jede IP-Adresse (für Ihre 2 Computer) auf dem Router dauerhaft zuzuweisen. Stellen Sie dann einfach eine Verbindung zu dieser IP-Adresse her.

Wenn Sie (später) clever werden möchten, richten Sie einen Server ein und verwenden Sie einen lokalen DNS-Dienst, um jedem Gerät aussagekräftige Namen zuzuweisen. Nicht wirklich die Mühe wert für nur 2 PCs.

david6
quelle
1
Hinweis: Heutzutage lesen viele anständige Heimrouter die Hostnamen der Arbeitsstationen während der IP-Adresszuweisung und lösen sie für lokales DNS auf. Leider ist dies noch keine universelle Funktion.
Piskvor
2

Wenn Sie dieselbe Internetverbindung nutzen, befinden Sie sich höchstwahrscheinlich hinter demselben WLAN-Router. So verbinden Sie sich direkt mit Ihrem Kindercomputer:

ssh <IP-address>

oder:

ssh <user-name>@<IP-address>

Offensichtlich funktioniert dies besser, wenn der Kindercomputer eine statische IP-Adresse hat. Andernfalls müssen Sie immer überprüfen, wie hoch die IP-Adresse ist. Die meisten Router haben die Möglichkeit, ausgewählten Geräten statische (immer gleiche) IP-Adressen zuzuweisen. Einige Router haben auch die Option, einem bestimmten Gerät einen Hostnamen zuzuweisen - dann würden "Kinder" für jedes Gerät mit derselben Netzwerkadresse dasselbe bedeuten. Wenn Sie Hostnamen mit der Datei / etc / hosts zuweisen, ist der Hostname nur dem Computer bekannt, auf dem sich diese Hostdatei befindet. Dies setzt auch voraus, dass der Kindercomputer eine statische IP-Adresse hat.

Sie können auch auf diesem Computer eine statische IP-Adresse für Kindercomputer festlegen, aber ich rate Ihnen, die Netzwerkeinstellungen im Router festzulegen. Ein Kontrollpunkt - einfacher zu verwalten. Wenn etwas unklar ist, hinterlasse einen Kommentar und ich werde meine Antwort erweitern.

Tanel Mae
quelle
Ich habe Ihren Vorschlag ausprobiert, habe jedoch eine Fehlermeldung erhalten: ssh: connect to host xxx.xxx.x.xx port 22: connection refused- Ist eine zusätzliche Konfiguration erforderlich?
Lukaszkups
Auf diesem Computer muss ein SSH-Server ausgeführt werden, und es muss keine Firewall vorhanden sein, die ihn usw. blockiert. Es kann sein, dass ssh so konfiguriert wurde, dass Verbindungen an einem anderen Port erwartet werden. In diesem Fall kann das Benutzer -p-Flag etwas anderes als den Standardport (22) verwenden.
Tanel Mae
0

Sie können die IP-Adresse anstelle eines Hostnamens verwenden oder einen benutzerdefinierten Hostnamen in Ihrer /etc/hostsDatei zuweisen .

Um die IP auf dem Computer des Kindes zu erhalten, gehen Sie im Netzwerkmenü auf "Verbindungsinformationen" oder führen Sie sie ifconfigüber die Befehlszeile aus (diese müssen auf dem Computer des Kindes ausgeführt werden).

Ihr WLAN-Router weist diese IP-Adressen zu, und Sie sollten in der Lage sein, sie so zu konfigurieren, dass sie bestimmte IP-Adressen für die Computer enthält, denen sie derzeit zugewiesen sind. (Andernfalls können sich die IP-Adressen von Zeit zu Zeit ändern.)

AmanicA
quelle
0

Sie können dem Computer Ihres Kindes einfach einen Computernamen zuweisen.
Dann einfach machen,
ssh MachineName

Ich habe das nie benutzt, nur einen Gedanken in meinem Kopf, den ich teilte.

Gaurav Gandhi
quelle