Quel est le meilleur moyen de passer de SSH aux machines du réseau local?

61

J'ai 2 ordinateurs, un que j'utilise et un pour les enfants. Je veux être capable de ssh dans leur ordinateur pour le contrôler (comme pour le fermer, etc.) mais je suis curieux de savoir la meilleure façon de le faire. Nous sommes tous les deux dans la même maison et partageons la même connexion Internet.

Quelle serait la meilleure façon de faire cela? D'après mes recherches, j'ai lu pour installer openssh-server sur l'ordinateur distant, mais je ne sais pas quoi utiliser pour le nom d'hôte lors d'une tentative de connexion. Habituellement, pour les VPS, c'est l'adresse IP externe, mais puisque nous partageons tous les deux une connexion wifi, s'agit-il de l'adresse IP matérielle? Devrions-nous nous interfacer directement par LAN ou par Internet?

dukevin
la source

Réponses:

58

Courir:

avahi-browse -tl _workstation._tcp

Pour obtenir une liste des postes de travail Ubuntu du réseau local, vous pouvez vous y connecter en exécutant:

ssh <username>@<computer-name>.local
Eric Carvalho
la source
7
Remarque: pour avahi-browse, vous devrez installer le avahi-utilspackage (qui extraira également avahi-daemonle service fournissant l’adressabilité .local).
Piskvor
2
@Piskvor Bon point. Ce paquet est déjà installé par défaut dans Ubuntu Desktop, mais je ne connais pas les autres versions (kubuntu, lubuntu, etc.). S'il n'est pas installé, lancez simplement sudo apt-get install avahi-utils.
Eric Carvalho
donc serait-il nécessaire de configurer un serveur ssh ou par exemple Ubuntu 14.04 en exécute-t-il un par défaut?
tobi
1
@tobi Le serveur SSH n'est pas installé par défaut. Vous devez l'installer.
Eric Carvalho
2
la liste semble vide après ma course avahi. Les deux ordinateurs sont connectés au même routeur
Jose Ospina
15

Vous pouvez utiliser l'adresse IP pour SSH dans l'ordinateur de l'enfant. Si vous souhaitez utiliser le nom de l'ordinateur, modifiez votre fichier / etc / hosts pour inclure le nom de l'ordinateur.

192.168.1.104  dad
192.168.1.105  kids
Ed Manet
la source
12
Vous devez souligner que les adresses IP doivent être attribuées de manière statique aux ordinateurs.
Alaa Ali
3
Vous pouvez activer sshing par nom sans modifier le fichier hosts en nommant les hôtes dans ~/.ssh/config: howtogeek.com/75007/…
Nathan Long
@NathanLong - Bon conseil! bien que l'on puisse argumenter de l'avoir dans le fichier hosts, on peut accéder à n'importe quel service (si cela est souhaité).
Stefgosselin
9

Avant de faire ssh, vérifiez le client et le serveur ssh. Si vous n'avez pas ce service installer

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Si vous avez déjà fait

 ssh username@ipaddress

 Enter connecting device login password.

Exemple :

 ssh [email protected]

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

Si vous rencontrez une erreur du type: "Autorisation refusée, veuillez réessayer."

S'il vous plaît vérifier à deux reprises pour le nom d'utilisateur et l'ip.

PAC
la source
8

J'utilise le fichier ~ / .ssh / config que ssh analyse automatiquement, en voici un exemple:

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

Notez que vous pouvez utiliser n'importe quelle variable (côté client) dans ce fichier et la définir globalement ou par serveur.

Shadok
la source
Alors, comment configurer l’installation DNS d’une appliance de passerelle Internet domestique à associer server1-web.example.orget server2-db.example.orgavec les serveurs respectifs?
Damian Yerrick
5
  1. Vous pouvez ssh directement sur une adresse IP locale à condition que votre réseau local utilise des adresses IP statiques, par exemple
    ssh [email protected]

  2. Vous pouvez éditer le fichier hosts sur les deux ordinateurs, comme mentionné par Ed Manet dans sa réponse . De cette façon, vous pouvez alors utiliser ssh en utilisant le nom d’hôte de l’ordinateur, c’est-à-diressh someuser@some_hostname

  3. Vous pouvez configurer un serveur DNS local pour résoudre les hôtes de votre réseau local. De cette façon, vous pourrez utiliser SSH avec le nom d'hôte de l'ordinateur comme dans l'option 2, tout en évitant l'édition de tous les fichiers hôtes en pointant votre serveur DNS dans les paramètres réseau d'Ubuntu.

DNSMasq est un très bon serveur DNS facile à installer.
Une autre option est BIND .

Stef K
la source
3

Utilisez l'adresse IP du réseau local. L’approche alternative nécessite que certains ports soient ouverts sur Internet pour vous permettre de vous connecter.

En outre, vous aurez besoin d'un mappage de port (sur le routeur). L'utilisation de votre adresse IP 'publique' (sur le routeur) en tant que cible ne se connectera à aucun de vos deux ordinateurs.


Le moyen le plus simple consiste à attribuer en permanence chaque adresse IP (pour vos 2 ordinateurs) sur le routeur. Ensuite, connectez-vous simplement à cette adresse IP.

Si vous voulez être intelligent (plus tard), configurez un serveur et commencez à utiliser un service DNS local pour attribuer des noms significatifs à chaque périphérique. Ne vaut vraiment pas la peine pour seulement 2 PC.

david6
la source
1
Remarque: de nos jours, de nombreux routeurs domestiques décents liront les noms d’hôte des postes de travail lors de l’attribution d’adresses IP et le résoudront pour le DNS local. Hélas, ce n'est pas encore une fonctionnalité universelle.
Piskvor
2

Si vous partagez la même connexion Internet, vous êtes probablement derrière le même routeur wifi. Donc, vous vous connectez directement à l'ordinateur de vos enfants:

ssh <IP-address>

ou:

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

Évidemment, cela fonctionne mieux si l'ordinateur des enfants a une adresse IP statique. Sinon, vous devez toujours vérifier quelle est l'adresse IP. La plupart des routeurs ont la possibilité d'attribuer une adresse IP statique (toujours la même) aux périphériques choisis. Certains routeurs ont également la possibilité d’attribuer un nom d’hôte à un périphérique donné - pour tous les périphériques de la même adresse réseau, "enfants" aurait le même sens. Si vous attribuez des noms d'hôte avec le fichier / etc / hosts, le nom d'hôte n'est connu que de l'ordinateur sur lequel se trouve ce fichier. En outre, cela suppose que l'ordinateur des enfants a une adresse IP statique.

Vous pouvez définir une adresse IP statique sur un ordinateur pour enfants également sur cette machine, mais je vous conseille de configurer les paramètres réseau dans le routeur. Un point de contrôle - plus facile à gérer. Si quelque chose n'est pas clair, laissez un commentaire et je développerai ma réponse.

Tanel Mae
la source
J'ai essayé votre suggestion, mais j'ai une erreur: ssh: connect to host xxx.xxx.x.xx port 22: connection refused- existe-t-il une configuration supplémentaire nécessaire?
lukaszkups
Un serveur ssh doit s'exécuter sur cette machine et aucun pare-feu ne le bloque, etc. Il se peut que ssh ait été configuré pour s’attendre à des connexions sur un autre port, auquel cas il est possible à l’utilisateur -p flag d’utiliser autre chose que le port par défaut (22).
Tanel Mae
0

Vous pouvez utiliser l'adresse IP à la place d'un nom d'hôte ou attribuer un nom d'hôte personnalisé dans votre /etc/hostsfichier.

Pour obtenir l'adresse IP sur l'ordinateur de l'enfant: dans le menu du réseau, voir "Informations de connexion" ou exécutez-le ifconfigsur la ligne de commande (ces opérations doivent être effectuées sur l'ordinateur de l'enfant).

Votre routeur wifi attribue ces adresses IP et vous devriez pouvoir le configurer pour conserver des adresses IP spécifiques pour les ordinateurs auxquels il est actuellement affecté. (Sinon, l'adresse IP peut changer de temps en temps).

AmanicA
la source
0

Vous pouvez simplement attribuer un nom de calcul à la machine de votre enfant.
Ensuite, faites simplement,
ssh MachineName

Je n'ai jamais utilisé cela, juste une pensée dans ma tête que j'ai partagée.

Gaurav Gandhi
la source