SSH directement entre deux machines

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J'ai deux machines : un PC sous ArchLinux et un pcDuino sous Ubuntu (Lubuntu pour être précis). Mon PC est connecté en Wifi à la Box et a pour IP 192.168.168.A (DHCP). Comme je ne peux pas connecter la pcDuino au routeur depuis la salle où je travaille (son Wifi n'est pas assez puissant et je n'ai pas de prise réseau) et que je n'ai pas envie de me promener avec un écran, je souhaiterais connecter la pcDuino directement à mon Arch afin d'y accéder via SSH (je n'ai pas besoin de connexion Internet sur la pcDuino, seulement d'avoir accès au shell).

J'ai suivi cette procédure et ai assigné les propriétés suivantes à la pcDuino, connectée à mon PC par Ethernet :

  • IP : 192.168.168.113
  • Masque : 255.255.255.0
  • Passerelle : 192.168.168.254 (la Box)

Mais lorsque j'essaye de m'y connecter en SSH (ssh ubuntu@192.168.168.113), j'obtiens un Connection refused avant même de m'être vu demandé le mot de passe. Pour information, je parviens très bien à me connecter en SSH à la pcDuino lorsque celle-ci est reliée à la Box (elle a alors généralement la même IP : 192.168.168.113).

Je précise que je suis une nouille en réseau.

Merci.

+0 -0

Sachant que ton pcDuino est connecté à ton PC, ça me semble étrange que sa passerelle soit la box (qui ne peut être contacté).

Autre chose : est-ce que tu es sûr que quand tu as fais ton ssh la requête a été envoyé à la pcDuino et pas à la box (si tu es toujours connecté en wifi)?

Si tu t'y connais un minimum en réseau, je te conseille d'utiliser un outil tel que wireshark et d'observer ce qu'il se passe sur ton interface ethernet, ça t'aidera peut-être à comprendre ce qu'il se passe.

Une dernière chose : est-ce que tu utilises bien un câble croisé?

Si j'était toi, je commencerais par vérifier la configuration ip de tes pcs. J'utiliserais la commande ping pour vérifier que les pc peuvent bien dialoguer (ping 192.168.168.113 depuis le PC).

Si ça marche, j'activerais le mode debug de ssh et je regarderais les logs. Pour activer le mode debug de ssh, tu peux utiliser l'argument -v ou -vvv selon le niveau de détail que tu veux. Du coup, tu te connecte en ssh avec la commande ssh -v ubuntu@192.168.168.113 et regarder les logs.

Deux petites questions: - As-tu un port micro-usb, ou on pourrait relier ton pcDuino et ton pc ?

+0 -0

Sachant que ton pcDuino est connecté à ton PC, ça me semble étrange que sa passerelle soit la box (qui ne peut être contacté).

Moi aussi, mais j'ignore quoi mettre. :/

Autre chose : est-ce que tu es sûr que quand tu as fais ton ssh la requête a été envoyé à la pcDuino et pas à la box (si tu es toujours connecté en wifi)?

Si tu t'y connais un minimum en réseau, je te conseille d'utiliser un outil tel que wireshark et d'observer ce qu'il se passe sur ton interface ethernet, ça t'aidera peut-être à comprendre ce qu'il se passe.

Je vais regarder ça. Mais normalement, il y a des règles bien définies (que je ne connais malheureusement pas du tout), non ? Je veux dire, on devrait pouvoir déterminer ce qu'il se passe sans analyse le traffic.

Une dernière chose : est-ce que tu utilises bien un câble croisé?

J'arrive à pinger l'IP donc je pense que c'est bon.

Si j'était toi, je commencerais par vérifier la configuration ip de tes pcs. J'utiliserais la commande ping pour vérifier que les pc peuvent bien dialoguer (ping 192.168.168.113 depuis le PC).

Ca c'est bon. Mais je ne suis plus connecté à la Box.

Si ça marche, j'activerais le mode debug de ssh et je regarderais les logs.

1
2
3
4
5
6
7
8
[vincent@vincent ~]$ ssh -vvv ubuntu@192.168.168.113
OpenSSH_6.9p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.168.113 [192.168.168.113] port 22.
debug1: connect to address 192.168.168.113 port 22: Connection refused
ssh: connect to host 192.168.168.113 port 22: Connection refused
[vincent@vincent ~]$ 

Deux petites questions: - As-tu un port micro-usb, ou on pourrait relier ton pcDuino et ton pc ?

Je ne crois pas. Quelle est la seconde question ?

Une solution serait de faire un point d'accès Wifi avec mon PC.

Merci.

+0 -0

La passerelle par défaut, c'est l'ip à laquelle il faut envoyer les packets destinés aux réseaux extérieurs (internet le plus souvent). Elle doit donc être sur le réseau local de ton pcDuino. Le plus logique serait de mettre ton PC qui de toute manière ignorera les packets qui ne lui sont pas destinés.

Puisque tu arrives à pinger ton pcDuino, on peut raisonnablement penser qu'il n'y a pas de problème de connexion. Le problème viens donc peut-être de la configuration du server ssh de ton pcDuino. D'ailleurs, ça peut paraître bête, mais est-ce que tu as bien installé un server ssh et est-ce qu'il est bien lancé?

Je parviens tout à fait à me connecter en SSH lorsque la pcDuino est reliée à la Box.

Le problème, c'est que me connecter à la pcDuino via Ethernet éjecte mon PC du réseau de ma Box, me privant ainsi d'Internet.

+0 -0

Pour éviter de te faire déco de ta box, il faut que tu configures un réseau sur une autre plage d'ip entre toi et ton pcDuino.

Tu peux, par exemple, utiliser n'importe quel sous-réseau de 10.0.0.0/8 qui est aussi réservé aux réseaux locaux.

+0 -0

Justement, je ne vois pas comment faire. Mon PC, connecté à la Box :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[vincent@vincent ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 44:8a:5b:f2:c3:be brd ff:ff:ff:ff:ff:ff
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f4:06:69:06:cf:20 brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.112/24 brd 192.168.168.255 scope global dynamic wlp5s0
       valid_lft 860964sec preferred_lft 860964sec
    inet6 fe80::f606:69ff:fe06:cf20/64 scope link 
       valid_lft forever preferred_lft forever
[vincent@vincent ~]$

Lorsque je connecte le RJ45, NetworkManager me l'indique et j'ajoute un profil avec les propriétés :

  • IP : 172.168.168.112
  • Masque : 255.255.255.0
  • Passerelle : ?

Alors :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[vincent@vincent ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 44:8a:5b:f2:c3:be brd ff:ff:ff:ff:ff:ff
    inet 172.168.168.112/24 brd 172.168.168.255 scope global enp3s0
       valid_lft forever preferred_lft forever
    inet6 fe80::468a:5bff:fef2:c3be/64 scope link 
       valid_lft forever preferred_lft forever
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f4:06:69:06:cf:20 brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.112/24 brd 192.168.168.255 scope global dynamic wlp5s0
       valid_lft 860865sec preferred_lft 860865sec
    inet6 fe80::f606:69ff:fe06:cf20/64 scope link 
       valid_lft forever preferred_lft forever
[vincent@vincent ~]$ 

Donc je viens de me rendre compte que les adresses spécifiées étaient celles du PC et non du pcDuino. Du coup, il est normal d'avoir une connexion refusée en SSH : mon PC n'a pas de serveur démarré.

Si j'ai bien compris, il faut que j'assigne une IP statique à ma pcDuino (172.168.168.113 par exemple). Restent la question de la passerelle et deux problèmes :

  • Je ne peux plus connecter ma pcDuino à la Box vu que son IP ne correspond pas au réseau créé par cette dernière ;
  • Je suis quand même déconnecté de la Box sur mon PC quand je branche l'Ethernet.

Merci.

+0 -0

L'IP que tu utilises pour ton réseau privé (172.168.168.112) est une IP publique qui appartient à la plage 172.128.0.0/10 (c'est à dire de 172.128.0.0 à 172.191.255.255).

Tu as un réseau en 192.168.168.0/24 au niveau de ta box, il t'en faut un autre sur une autre plage d'ip pour ne pas avoir de problème. Soit tu utilises n'importe quel plage sur 192.168.x.0/24 (avec x != 168), soit tu utilises n'importe quel plage sur 10.0.0.0/8. Les plages que je te donnes sont faites pour les réseaux privés et les ip associés ne correspondent à aucune ip publique.

Au niveau de la configuration sur ton port ethernet, tu peux par exemple prendre comme ip 10.0.0.1, masque 255.255.255.0 (donc tu as un réseau sur la plage 10.0.0.0/24) et si possible, ne met pas de passerelle par défaut (il n'y en a pas). Tu met la même configuration sur ton pcDuino avec l'ip 10.0.0.2 et ça devrait fonctionner.

Si tu es toujours déco quand tu branches l'ethernet, regarde le résultat de la commande ip route.

Ca fonctionne ! La procédure :

  • Brancher le câble Ethernet aux deux machines (pcDuino et PC ArchLinux)
  • Configurer l'interface Ethernet du PC
    • IP : 192.168.167.1
    • Masque : 24
  • Donner une IP statique à la pcDuino
    • IP : 192.168.167.2
    • Masque : 24

Par contre, ça m'embête un peu d'avoir une IP statique pour ma pcDuino. Ce que je ne comprends pas, c'est que je n'ai pas eu à le faire sous Arch avec NetworkManager. Je ne parviens pas, sur la pcDuino, à me connecter au 192.168.167.x sans lui donner d'IP fixe. Puis-je remédier à cela ?

Merci beaucoup.

+0 -0

Un ordi ne peut pas faire grand chose sur un réseau s'il n'a pas d'ip. La plupart du temps, il y a un server DHCP (sur la box) qui s'occupe d'attribuer des ip à ceux qui en demande. Là, tu n'as que ton ordi et ton pcDuino. Donc il n'y a pas de server DHCP, il faut donc des ip statiques.

Oui, mais ce qui est bizarre c'est que j'ai dû éditer /etc/network/interfaces sur la pcDuino alors que tout a pu se faire via la GUI de NetworkManager sur mon PC.

+0 -0

Il semblerait que oui : j'ai un service network-manager de démarré. Mais j'ai l'impression qu'il bug : mon câble Ethernet est branché aux deux machines (le PC me l'indique) mais un ifconfig sur la pcDuino ne m'affiche pas d'adresse IP pour l'interface eth0, alors que le fichier /etc/network/interfaces contient :

1
2
3
4
5
6
7
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.167.2
netmask 255.255.255.0
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte