Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ssh_avance [Le 20/11/2017, 10:59]
L'Africain ancienne révision (Le 06/04/2016, 12:49) restaurée
ssh_avance [Le 11/09/2022, 12:01] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 39: Ligne 39:
 ===== Utiliser le ssh-agent ===== ===== Utiliser le ssh-agent =====
  
-Si vous devez fréquemment ouvrir des sessions distantes avec SSH ou copier des fichiers avec SCP (ou toute autre utilisation de SSH) il existe une solution pour ne pas avoir à saisir votre passphrase à chaque utilisation.  +Si vous devez fréquemment ouvrir des sessions distantes avec SSH ou copier des fichiers avec SCP (ou toute autre utilisation de SSH) il existe une solution pour ne pas avoir à saisir votre passphrase à chaque utilisation. 
- en utilisant **SSH agent**. ​+ en utilisant **SSH agent**.
 Vous devez indiquer une fois votre //​passphrase//​ à ssh-agent en employant la commande **ssh-add** et tout ce que vous commencez comme sous-processus de **SSH agent** (donc SSH, SCP, etc.) se rappellera automatiquement de la passphrase. Vous devez indiquer une fois votre //​passphrase//​ à ssh-agent en employant la commande **ssh-add** et tout ce que vous commencez comme sous-processus de **SSH agent** (donc SSH, SCP, etc.) se rappellera automatiquement de la passphrase.
 <​code>​ <​code>​
Ligne 52: Ligne 52:
 L'​agent ssh ne transmet pas votre passphrase sur le réseau ni votre clé privée. L'​agent ssh ne transmet pas votre passphrase sur le réseau ni votre clé privée.
  
-Vous pouvez savoir quel utilisateur est déclaré avec ssh-agent à l'aide de la commande suivante : +Vous pouvez savoir quel utilisateur est déclaré avec ssh-agent à l'aide de la commande suivante :
 <​code>​ <​code>​
 ssh-add -l ssh-add -l
Ligne 73: Ligne 73:
  
 Vous pouvez : Vous pouvez :
-  * Utiliser le mode natif de base de SSH, voir [[ssh|SSH]] ​+  * Utiliser le mode natif de base de SSH, voir [[ssh|SSH]]
   * Utiliser le mode natif avancé de SSH :  les directives //Chroot// et //Match// de SSH, qui permettent de limiter pour certains utilisateurs l'​utilisation du ssh au sftp et dans un répertoire déterminé.\\ Voir [[http://​www.dsfc.net/​infrastructure/​securite/​chroot-ssh-protocolesftp/​|sftp avec Chroot]] pour les détails.   * Utiliser le mode natif avancé de SSH :  les directives //Chroot// et //Match// de SSH, qui permettent de limiter pour certains utilisateurs l'​utilisation du ssh au sftp et dans un répertoire déterminé.\\ Voir [[http://​www.dsfc.net/​infrastructure/​securite/​chroot-ssh-protocolesftp/​|sftp avec Chroot]] pour les détails.
   * Utiliser [[:​mysecureshell_sftp-server|MySecureShell]]. MysecureShell,​ qui s'​installe en plus de ''​openssh-server'',​ ajoute une couche au dessus de SSH sur le serveur et demande l'​emploi de Java sur le client pour disposer d'une interface graphique de paramétrage de SSH/SFTP.\\ Cela n'​apporte toutefois aucune fonction ni sécurité supplémentaire par rapport au mode natif avancé.   * Utiliser [[:​mysecureshell_sftp-server|MySecureShell]]. MysecureShell,​ qui s'​installe en plus de ''​openssh-server'',​ ajoute une couche au dessus de SSH sur le serveur et demande l'​emploi de Java sur le client pour disposer d'une interface graphique de paramétrage de SSH/SFTP.\\ Cela n'​apporte toutefois aucune fonction ni sécurité supplémentaire par rapport au mode natif avancé.
Ligne 119: Ligne 119:
 ===== Tunnéliser sa connexion internet par SSH (sans Squid) ===== ===== Tunnéliser sa connexion internet par SSH (sans Squid) =====
  
-[[#​Tunnéliser sa connexion internet par SSH avec l'aide de Squid|La partie précédente]] consiste à installer un [[http://​fr.wikipedia.org/​wiki/​Proxy|mandataire HTTP]] sur le serveur et de s'y connecter via SSH. Cependant, SSH lui-même peut jouer le rôle de mandataire, ce qui évite l'​installation d'un logiciel supplémentaire.+[[#​Tunnéliser sa connexion internet par SSH avec l'aide de Squid|La partie précédente]] consiste à installer un [[https://​fr.wikipedia.org/​wiki/​Proxy|mandataire HTTP]] sur le serveur et de s'y connecter via SSH. Cependant, SSH lui-même peut jouer le rôle de mandataire, ce qui évite l'​installation d'un logiciel supplémentaire.
  
 ==== Partie serveur ==== ==== Partie serveur ====
Ligne 155: Ligne 155:
 ==== Gestion des tunnels ==== ==== Gestion des tunnels ====
  
-Il existe une petite ​application graphique bien pratique pour gérer les tunnels SSH : au lieu de les recréer chaque fois on utilise [[:gstm|Graphical SSH Tunnel Manager]].+Il existe une application graphique bien pratique pour gérer les tunnels SSH : au lieu de les recréer chaque fois on utilise [[:remmina|Remmina]].
  
 ===== Accéder à ses ressources réseau locales depuis l'​extérieur sans NAT : tunnel ===== ===== Accéder à ses ressources réseau locales depuis l'​extérieur sans NAT : tunnel =====
Ligne 193: Ligne 193:
 <note important>​Si vous obtenez l'​erreur suivante : <​code>​Pseudo-terminal will not be allocated because stdin is not a terminal.</​code>​ rajouter l'​option ''​-t''​ sur la connexion ssh du serveur intermédiaire,​ ce qui donne : <​code>​ssh -t <​srv_intermédiaire>​ ssh <​srv_final></​code></​note>​ <note important>​Si vous obtenez l'​erreur suivante : <​code>​Pseudo-terminal will not be allocated because stdin is not a terminal.</​code>​ rajouter l'​option ''​-t''​ sur la connexion ssh du serveur intermédiaire,​ ce qui donne : <​code>​ssh -t <​srv_intermédiaire>​ ssh <​srv_final></​code></​note>​
  
-==== Connexion ssh directement ​vers le serveur de destination ==== +==== Connexion ssh en mode Bastion ​vers le serveur de destination ==== 
-Le fonctionnement n'est pas du tout le même que [[#​Connexion ssh vers le serveur de destination via un serveur ssh intermédiaire|précédemment]] car ssh parlera ici directement ​avec le serveur final.\\+Le fonctionnement n'est pas du tout le même que [[#​Connexion ssh vers le serveur de destination via un serveur ssh intermédiaire|précédemment]] car ssh communique ​avec le serveur final. Le serveur intermédiaire est appelé l'​hôte bastion.\\
 Indiquez directement sur le poste client la commande ''​ProxyCommand''​ en [[:​tutoriel:​comment_modifier_un_fichier|modifiant le fichier]] Indiquez directement sur le poste client la commande ''​ProxyCommand''​ en [[:​tutoriel:​comment_modifier_un_fichier|modifiant le fichier]]
-<file bash ~/​.ssh/​config>​+Il s'​agira donc de modifier sur votre client ​<file bash ~/​.ssh/​config>​
 Host <​srv_final>​ Host <​srv_final>​
-ProxyCommand ssh <​srv_intermédiaire>​ nc %h %p+ProxyCommand ssh -W %h:%p <​srv_bastion>​
 </​file>​ </​file>​
-L'​utilisation de la commande ''​nc''​ (''​netcat''​),​ qui doit être présente sur le serveur intermédiaire,​ permet ainsi de se connecter sur le port ssh du serveur final et établit juste un lien entre le client et le serveur final.\\  +<​note>​ 
-<​note ​important>Avec le [[http://​blog.rootshell.be/​2010/​03/​08/​openssh-new-feature-netcat-mode/​|"​mode netcat intégré"​ introduit avec la version 5.4]], ​l'option "nc" n'est plus nécessaire.\\ +Avec le [[https://​blog.rootshell.be/​2010/​03/​08/​openssh-new-feature-netcat-mode/​|"​mode netcat intégré"​ introduit avec la version 5.4]]. Avant la version OpenSSH 5.4on pouvait utiliser la commande ''​nc'' ​(paquet d'​installation ''​netcat''​) ​sur le client <file bash ~/​.ssh/​config>​
-Il s'agira donc de modifier ​sur votre client ​ <file bash ~/​.ssh/​config>​+
 Host <​srv_final>​ Host <​srv_final>​
-ProxyCommand ssh -W %h:%p <​srv_intermédiaire>​+ProxyCommand ssh <​srv_intermédiaire>​ nc %h %p
 </​file>​ </​file>​
 +L'​utilisation de la commande ''​nc''​ permettait ainsi de se connecter sur le port ssh du serveur final et n'​aboutissait que si le paquet ''​netcat''​ et l'​option TCP ''​AllowTcpForwarding''​ étaient installés sur l'​hôte intermédiaire.\\ ​
 +</​note>​
 +<note tip>
 +Les différences entre les versions de la commande proxy sont expliquées dans [[https://​stackoverflow.com/​questions/​22635613/​what-is-the-difference-between-ssh-proxycommand-w-nc-exec-nc|Définition de la commande proxy sur Stackoverflow (anglais)]]\\
 </​note>​ </​note>​
 +
 +Contributeurs:​ [[https://​github.com/​b23prodtm|b23p]]
  
 ===== Accéder à un serveur ssh dont les ports entrants sont bloqués ===== ===== Accéder à un serveur ssh dont les ports entrants sont bloqués =====
 Il peut arriver que les ports des connexions entrantes sur un serveur SSH soient bloqués ((le cas peut se présenter notamment en entreprise ou derrière une box)). Cependant, il est rare que les ports sortants soient fermés. Dans ce cas, il est possible de faire appel à du << //​Reverse-SSH//​ >> tel qu'​expliqué dans **[[:​tutoriel:​reverse_ssh|cette page]]** Il peut arriver que les ports des connexions entrantes sur un serveur SSH soient bloqués ((le cas peut se présenter notamment en entreprise ou derrière une box)). Cependant, il est rare que les ports sortants soient fermés. Dans ce cas, il est possible de faire appel à du << //​Reverse-SSH//​ >> tel qu'​expliqué dans **[[:​tutoriel:​reverse_ssh|cette page]]**
 +
 +===== Exécuter une même commande simultanément sur plusieurs machines via ssh =====
 +Dans la gestion d'un parc de plusieurs machines il peut être intéressant de leur envoyer la même commande en simultané. Il existe pour ça le logiciel **[[:​Pssh]]**
  
 ===== Problèmes et solutions ===== ===== Problèmes et solutions =====
Ligne 223: Ligne 231:
  
   * [[http://​www.dsfc.net/​infrastructure/​securite/​chroot-ssh-protocolesftp/​|Tuto]]. « Chrooter » un utilisateur en ssh facilement.   * [[http://​www.dsfc.net/​infrastructure/​securite/​chroot-ssh-protocolesftp/​|Tuto]]. « Chrooter » un utilisateur en ssh facilement.
-  * [[http://​technique.arscenic.org/​connexion-distante-au-serveur-ssh/​|Config]]. Configuration et sécurisation de ssh.+  * [[https://​technique.arscenic.org/​connexion-distante-au-serveur-ssh/​|Config]]. Configuration et sécurisation de ssh.
   * [[http://​www.refreshinglyblue.com/​2007/​5/​18/​long-delay-before-ssh-authentication|Source]] pour le problème de [[#délai lors de la connexion]]   * [[http://​www.refreshinglyblue.com/​2007/​5/​18/​long-delay-before-ssh-authentication|Source]] pour le problème de [[#délai lors de la connexion]]
  
 ---- ----
 //​Contributeurs : [[:​utilisateurs:​sx1]] //​Contributeurs : [[:​utilisateurs:​sx1]]
  • ssh_avance.1511171942.txt.gz
  • Dernière modification: Le 20/11/2017, 10:59
  • par L'Africain