| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| tutoriel:reverse_ssh [Le 21/11/2017, 13:04] – {{tag>tutoriel}} scaph | tutoriel:reverse_ssh [Le 26/01/2025, 05:57] (Version actuelle) – [Connexion sur le poste serveur depuis le poste distant] Thomas DC |
|---|
| {{:tutoriel:ssh:reverse_ssh_dfwil.png|userD@distant est le serveur SSH à joindre mais est inaccessible dû aux paramétrages du routeur/pare-feu...}} | {{:tutoriel:ssh:reverse_ssh_dfwil.png|userD@distant est le serveur SSH à joindre mais est inaccessible dû aux paramétrages du routeur/pare-feu...}} |
| |
| Ici | Ici |
| * **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur | * **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur |
| * **userL@local** correspond à l'utilisateur //userL//, sur le poste appelé **//local//** qui dispose également d'un serveur ssh, et qui va permettre d'accéder à la machine **//distant//** | * **userL@local** correspond à l'utilisateur //userL//, sur le poste appelé **//local//** qui dispose également d'un serveur ssh, et qui va permettre d'accéder à la machine **//distant//** |
| Saisissez dans un [[:terminal]] sur **//local//** la [[:commande_shell|commande]] suivante : | Saisissez dans un [[:terminal]] sur **//local//** la [[:commande_shell|commande]] suivante : |
| <code>sudo adduser --no-create-home userL</code> | <code>sudo adduser --no-create-home userL</code> |
| où : | où: |
| * **--no-create-home** est l'option spécifiée pour ne pas créer de dossier **/home/userL** sur le poste //**local**//. | * **%%--%%no-create-home** est l'option spécifiée pour ne pas créer de dossier **/home/userL** sur le poste //**local**//. |
| * **userL** est à remplacer par le nom de votre choix mais suffisamment explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste local depuis le poste distant|étape suivante]]. | * **userL** est à remplacer par le nom de votre choix mais suffisamment explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste local depuis le poste distant|étape suivante]]. |
| |
| ==== Connexion sur le poste local depuis le poste distant ==== | ==== Connexion au poste local depuis le poste distant ==== |
| |
| Initiez une connexion sur //**local**// en saisissant sur le poste //**distant**//: | Initiez une connexion à //**local**// en saisissant sur le poste //**distant**//: |
| <code>ssh -R 12345:localhost:22 userL@local</code> | <code>ssh -NR 12345:localhost:22 userL@local</code> |
| où | où |
| * //12345// est à remplacer par un numéro de port aléatoire (entre 1024 et 65535 qui sont réservés pour des applications utilisateurs) et non utilisé de votre choix | * //12345// est à remplacer par un numéro de port aléatoire (entre 1024 et 65535 qui sont réservés pour des applications utilisateurs) et non utilisé de votre choix |
| * **userL** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste local|défini précédemment]]. | * **userL** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste local|défini précédemment]]. |
| | * **local** est l'adresse IP publique de la machine locale (au besoin avec une règle NAT dans la box locale pour être joignable de l'extérieur) |
| |
| ==== Connexion sur le poste distant depuis le poste local ==== | ==== Connexion au poste distant depuis le poste local ==== |
| |
| La connexion étant désormais activée depuis //**distant**// sur //**local**//, le [[:pare-feu]] va donc laisser rentrer la connexion reverse, à savoir depuis //**local**// sur //**distant**//.\\ | La connexion étant désormais activée depuis //**distant**// vers //**local**//, le [[:pare-feu]] va donc laisser rentrer la connexion reverse, à savoir depuis //**local**// vers //**distant**//.\\ |
| Pour cela taper dans un terminal sur //**local**//: | Pour cela taper dans un terminal sur //**local**//: |
| <code>ssh -p 12345 userD@localhost</code> | <code>ssh -p 12345 userD@localhost</code> |
| où | où |
| * //12345// est le port [[#Connexion sur le poste local depuis le poste distant|choisi auparavant]] | * //12345// est le port [[#Connexion sur le poste local depuis le poste distant|choisi auparavant]] |
| * **userD** est à remplacer par le nom d'utilisateur permettant de se connecter au serveur ssh sur //**distant**// | * **userD** est à remplacer par le nom d'utilisateur permettant de se connecter au serveur ssh sur //**distant**// |
| {{:tutoriel:ssh:reverse_ssh_dfwisl.png|userD@distant et userL@local ne sont pas accessibles depuis l'extérieur}} | {{:tutoriel:ssh:reverse_ssh_dfwisl.png|userD@distant et userL@local ne sont pas accessibles depuis l'extérieur}} |
| |
| Ici | Ici |
| * **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur | * **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur |
| * **userS@serveur** correspond à l'utilisateur //userS//, sur le poste appelé **//serveur//** qui dispose d'un accès libre à son serveur ssh. | * **userS@serveur** correspond à l'utilisateur //userS//, sur le poste appelé **//serveur//** qui dispose d'un accès libre à son serveur ssh. |
| Taper dans un terminal : | Taper dans un terminal : |
| <code>sudo adduser --no-create-home userS</code> | <code>sudo adduser --no-create-home userS</code> |
| où | où |
| * l'option **--no-create-home** est spécifiée pour ne pas créer de dossier **/home/userS** sur le poste //**serveur**//. | * l'option **%%--%%no-create-home** est spécifiée pour ne pas créer de dossier **/home/userS** sur le poste //**serveur**//. |
| * **userS** est à remplacer par le nom de votre choix mais suffisament explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste serveur depuis le poste distant|étape suivante]]. | * **userS** est à remplacer par le nom de votre choix mais suffisament explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste serveur depuis le poste distant|étape suivante]]. |
| |
| ==== Connexion sur le poste serveur depuis le poste distant ==== | ==== Connexion sur le poste serveur depuis le poste distant ==== |
| | |
| Initiez une connexion sur **//serveur//** en tapant dans un [[:terminal]] de la machine **//distant//** : | Initiez une connexion sur **//serveur//** en tapant dans un [[:terminal]] de la machine **//distant//** : |
| <code>ssh -R 12345:localhost:22 userS@serveur</code> | <code>ssh -NR 12345:localhost:22 userS@serveur</code> |
| où | où |
| * //12345// est à remplacer par un numéro de port aléatoire de votre choix, | * //12345// est à remplacer par un numéro de port aléatoire de votre choix, |
| * le port //22// est le port d'écoute ssh sur la machine //**distant**//, | * le port //22// est le port d'écoute ssh sur la machine //**distant**//, |
| * **userS** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste serveur |défini précédemment]] | * **userS** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste serveur |défini précédemment]] |
| * **serveur** est l'adresse ip ou le nom de domaine du serveur tiers | * **serveur** est l'adresse ip ou le nom de domaine du serveur tiers |
| |
| <note tip> L'option ''-N'' peut également être ajoutée pour ne pas faire apparaitre d'invite de terminal sur //**distant**//</note> | |
| |
| ==== Connexion sur le poste serveur depuis le poste local ==== | ==== Connexion sur le poste serveur depuis le poste local ==== |
| |
| ==== Accès à la machine distante depuis la machine locale ==== | ==== Accès à la machine distante depuis la machine locale ==== |
| Vous pouvez désormais atteindre le poste **//distant//** en saisissant dans le terminal du poste **//local//** [[#Connexion sur le poste serveur depuis le poste local|connecté précédemment]] sur **//serveur//** | Vous pouvez désormais atteindre le poste **//distant//** en saisissant dans le terminal du poste **//local//** [[#Connexion sur le poste serveur depuis le poste local|connecté précédemment]] sur **//serveur//** |
| <code>ssh -p 12345 userD@localhost</code> | <code>ssh -p 12345 userD@localhost</code> |
| |
| ---- | ---- |
| //Contributeurs:[[:utilisateurs:nesthib]]// | //Contributeurs:[[:utilisateurs:nesthib]]// |