Outils d'utilisateurs

Outils du Site


ssh_configuration

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

ssh_configuration [2012/08/27 12:54]
Pheimors
ssh_configuration [2018/08/27 10:38] (Version actuelle)
Slaynot Orthographe + utilisation de "clé" partout au lieu d'un mix de "clef/clé" + modification de tournure d'une phrase
Ligne 15: Ligne 15:
 </file> </file>
  
-====== Génération et positionnement des clefs sous Linux & Mac ======+====== Génération et positionnement des clés sous Linux & Mac ======
  
 Commencez par lancer la génération via la commande suivante : Commencez par lancer la génération via la commande suivante :
Ligne 23: Ligne 23:
 </file> </file>
  
-Laissez le répertoire d'enregistrement des clefs par défaut :+Laissez le répertoire d'enregistrement des clés par défaut :
  
 <file> <file>
Ligne 30: Ligne 30:
 </file> </file>
  
-Choisissez ensuite si vous désirez indiquer une phrase de passe pour votre clef+Choisissez ensuite si vous désirez indiquer une phrase de passe pour votre clé.
  
-Il s'agit là de faire un choix entre sécurité et simplicité : si vous ne choisissez pas de mot de passe, en cas de vol de votre clef privé, la personne aura un accès direct à vos serveurs, cependant entrer la phrase de passe à chaque fois peut s'avérer ennuyeux.+Il s'agit là de faire un choix entre sécurité et simplicité : si vous ne choisissez pas de mot de passe, en cas de vol de votre clé privé, la personne aura un accès direct à vos serveurs, cependant entrer la phrase de passe à chaque fois peut s'avérer ennuyeux.
  
 Ici nous choisirons de ne pas indiquer de mot de passe : Ici nous choisirons de ne pas indiquer de mot de passe :
Ligne 46: Ligne 46:
 The key’s randomart image is: The key’s randomart image is:
 +–[ RSA 4096]—-+ +–[ RSA 4096]—-+
-| . + *+. | +| . + *+.      
-| * + + | +| * + +        
-| . + o | +| . + o        
-| . + | +| . +          
-| . S . | +| . S .        
-| . . | +| . .          
-| ..o o | +| ..o o        
-| . . .o.o . | +| . . .o.o .   
-|E . .. .o.. | +|E . .. .o..   
-+————-----—–+++————-----—–---+
 </file> </file>
  
-Envoyez votre clef publique sur le serveur OpenSSH:+Envoyez votre clé publique sur le serveur OpenSSH:
  
 <file> <file>
-Utilisateur$ scp ~/.ssh/id_rsa.pub Utilisateur@serveur.com:~/clefPublique+Utilisateur$ scp ~/.ssh/id_rsa.pub Utilisateur@serveur.com:~/clePublique
 </file> </file>
  
-Entrez ensuite cette clef dans le fichier authorize_keys sur le serveur OpenSSH:+Entrez ensuite cette clé dans le fichier authorize_keys sur le serveur OpenSSH:
  
 <file> <file>
 Utilisateur$ touch ~/.ssh/authorized_keys Utilisateur$ touch ~/.ssh/authorized_keys
-Utilisateur$ cat clefPublique >> ~/.ssh/authorized_keys+Utilisateur$ cat clePublique >> ~/.ssh/authorized_keys
 </file> </file>
  
-====== Génération et positionnement des clefs sous Windows avec PuttyGen et WinSCP ======+====== Génération et positionnement des clés sous Windows avec PuttyGen et WinSCP ======
  
-Commencez par télécharger PuttyGen [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|ici]], il s'agit de l'outil de génération de clef.+Commencez par télécharger PuttyGen [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|ici]], il s'agit de l'outil de génération de clé.
  
-Lancez PuttyGen et générez une clef de type SSH2-RSA et d'une taille de 4096 bits, puis enregistrez les deux clefs où vous le souhaitez (Mes Documents par exemple) +Lancez PuttyGen et générez une clé de type SSH2-RSA et d'une taille de 4096 bits, puis enregistrez les deux clés où vous le souhaitez (Mes Documents par exemple)
  
 Téléchargez WinSCP [[http://winscp.net/eng/download.php|ici]], puis installez le. Téléchargez WinSCP [[http://winscp.net/eng/download.php|ici]], puis installez le.
  
-Envoyez la clef publique générée sur le serveur OpenSSH, placez la dans le répertoire home de l'utilisateur sur lequel se connecter. Le client WinSCP fonctionne comme la majorité des clients FTP graphique connus, je ne vais donc pas détailler son utilisation.+Envoyez la clé publique générée sur le serveur OpenSSH, placez la dans le répertoire home de l'utilisateur sur lequel se connecter. Le client WinSCP fonctionne comme la majorité des clients FTP graphique connus, je ne vais donc pas détailler son utilisation.
  
-Entrez ensuite cette clef dans le fichier authorize_keys sur le serveur OpenSSH:+Entrez ensuite cette clé dans le fichier authorize_keys sur le serveur OpenSSH:
  
 <file> <file>
-Utilisateur$ ssh-keygen -i -g ~/clefPublique > ~/clefPubliqueOpenSSH+Utilisateur$ ssh-keygen -i -g ~/clePublique > ~/clePubliqueOpenSSH
 Utilisateur$ touch ~/.ssh/authorized_keys Utilisateur$ touch ~/.ssh/authorized_keys
-Utilisateur$ cat clefPubliqueOpenSSH >> ~/.ssh/authorized_keys+Utilisateur$ cat clePubliqueOpenSSH >> ~/.ssh/authorized_keys
 </file> </file>
 +
 +====== Conversion d'une clé Windows pour Linux ======
 +Lancez PuttyGen, cliquez sur "Load", Sélectionnez votre clé privée précédemment générée pour Windows.
 +Cliquez sur l'onglet "Conversion", cliquez sur "Export Openssh key". Nommez la clé nomdelaclé.ssh
 +
  
 ====== Connexion via les clients Linux & Mac ====== ====== Connexion via les clients Linux & Mac ======
Ligne 97: Ligne 102:
 </file> </file>
  
-Vous n'êtes désormais plus prompté pour votre mot de passe.+OpenSSH ne vous demandera pas de mot de passe.
  
 ====== Connexion sous Windows via Putty ====== ====== Connexion sous Windows via Putty ======
  
-Lancez PuttySSH, allez dans Connections/SSH/Auth et cliquez sur "Browse", puis choisissez votre clef privée.+Lancez PuttySSH, allez dans Connections/SSH/Auth et cliquez sur "Browse", puis choisissez votre clé privée.
  
 Allez ensuite dans Session puis indiquez l’adresse du serveur, et cliquez sur Open. Allez ensuite dans Session puis indiquez l’adresse du serveur, et cliquez sur Open.
  
-Vous voila connecté.+Vous voilà connecté.
  
 ====== Suppression de la connexion par mot de passe sur le serveur ====== ====== Suppression de la connexion par mot de passe sur le serveur ======
Ligne 121: Ligne 126:
 </file> </file>
  
-Vous avez terminé, attention cependant à ne pas perdre votre clef privée.+Vous avez terminé, attention cependant à ne pas perdre votre clé privée.
  
 ====== Administration ====== ====== Administration ======
Ligne 132: Ligne 137:
 ClientAliveInterval 5 ClientAliveInterval 5
 ClientAliveCountMax 2 ClientAliveCountMax 2
 +</file>
 +
 +===== Les restrictions d'accès =====
 +<file>
 +#Authoriser l'accès seulement à: utilisateur1 utilisateur2
 +AllowUsers utilisateur1 utilisateur2
 +
 +#Authoriser l'accès seulement aux groupes d'utilisateurs: groupe1 groupe2
 +AllowGroups groupe1 groupe2
 +
 +#Interdire l'accès en direct au compte root
 +PermitRootLogin no
 </file> </file>
  
 ===== Changer une passphrase ===== ===== Changer une passphrase =====
  
-Le programme ssh-keygen permet de changer la passphrase associée à un couple clef privée/publique :+Le programme ssh-keygen permet de changer la passphrase associée à un couple clé privée/publique :
 <file> <file>
 utilisateur $ ssh-keygen -p [--P old_passphrase] [-N new_passphrase] -f keyfile utilisateur $ ssh-keygen -p [--P old_passphrase] [-N new_passphrase] -f keyfile
Ligne 144: Ligne 161:
 ===== Ajouter un utilisateur ===== ===== Ajouter un utilisateur =====
  
-Lorsque vous êtes l'administrateur de la machine et qu'elle est déjà configurée pour n'accepter que les passphrases, l'utilisation de ssh-copy-id n'est pas possible pour ajouter une clef à un autre utilisateur.+Lorsque vous êtes l'administrateur de la machine et qu'elle est déjà configurée pour n'accepter que les passphrases, l'utilisation de ssh-copy-id n'est pas possible pour ajouter une clé à un autre utilisateur.
 En utilisant un compte disposant de suffisemment de droits, il est possible d'utiliser : En utilisant un compte disposant de suffisemment de droits, il est possible d'utiliser :
 <file> <file>
Ligne 150: Ligne 167:
 </file> </file>
  
-===== Révoquer une clef compromise =====+===== Révoquer une clé compromise ===== 
 + 
 +Si jamais une clé a été compromise et que l'on souhaite la révoquer, openssh n'offre pas de fonctionnalité telle que l'usage de clé de révocation. Il faudra donc se connecter sur le serveur et ajouter la clé publique de la paire de clés compromises dans un fichier tenant lieu de liste de révocation. 
 + 
 +Ajout à la configuration de sshd (/etc/ssh/sshd_config) : 
 +<file> 
 +RevokedKeys  %h/.ssh/revokedKeys 
 +</file> 
 + 
 + 
 +Ajout d'une clé à la liste de révocation (sur le serveur) : 
 +<file> 
 +cat id_rsa.pub >> ~/.ssh/revokedKeys 
 +</file> 
 + 
 + 
 +====== Utilisation de certificats d'authentification ====== 
 +===== Authentification du client ===== 
 + 
 +Afin de ne pas avoir à ajouter une nouvelle clé dans le fichier authorized_keys à chaque fois que l'on souhaite ajouter un nouveau client ssh, ou pire de dupliquer une seule clé privée sur plusieurs pc, il est possible d'utiliser des certificats. Le principe consiste à créer une autorité de certification (en l'occurence une paire de clé ssh). La clé privée de l'autorité servira à signer des clés publiques de client. La clé publique de l'autorité de certification servira sur le serveur à vérifier l'identité des clients (par le biais de la vérification de la signature). 
 + 
 +Génération des clés de l'autorité de certification : 
 +<file> 
 +ssh-keygen -t rsa -f cert_key 
 +</file> 
 + 
 +Positionnement de la clé publique de l'autorité de certification sur le serveur : 
 +<file> 
 +cat cert_key.pub >> ~/.ssh/trustedUserCAKeys 
 +</file> 
 + 
 +Ajouter les lignes suivantes à sshd : 
 +<file> 
 +    TrustedUserCAKeys         %h/.ssh/trustedUserCAKeys 
 +    AuthorizedPrincipalsFile  %h/.ssh/authorizedPrincipalsFile 
 +</file> 
 + 
 +Le fichier 'authorizedPrincipalsFile' contient le(s) nom(s) d'utilisateur(s) qui doivent être associé à un certificat pour que celui-ci soit valide. Par exemple : 
 +<file> 
 +yod_maison 
 +yod_boulot 
 +</file> 
 + 
 +Signature de la clé publique d'un utilisateur : 
 +<file> 
 +    ssh-keygen -s cert_key -I identifiant_de_ma_cle -n yod_boulot user_key.pub 
 +</file> 
 + 
 + 
 +Le fichier de certificat ainsi généré sera 'user_key-cert.pub'. A noter qu'il est possible, voir recommandé de limiter la durée de validité d'un certificat (option -V de ssh-keygen). 
 + 
 + 
 +configuration du fichier ~/.ssh/config sur le pc de l'utilisateur : 
 +<file> 
 +Host testssh 
 +        User yod 
 +        Hostname 192.168.0.10 
 +        PreferredAuthentications publickey 
 +        IdentityFile ~/.ssh/id_rsa 
 +</file> 
 + 
 +Connection au serveur : 
 +<file> 
 +    ssh testssh 
 +</file> 
 + 
 +Ainsi, la configuration du serveur ne changera plus tant que la clé de l'autorité de certification ne change pas. Et il suffit de signer la clé publique de tout nouveau client pour lui permettre l'accès au serveur.
  
-sshd_config propose une option RevokedKeys file. 
-TODO 
  
 +===== Authentification du serveur =====
 +TODO : c'est sensiblement la même chose que pour l'authentification du client, hormis l'utilisation de l'option -h de ssh-keygen pour la signature de la clé publique du serveur, et le fait que le nom du serveur (monserveur.mondomaine.fr) doit faire parti des nom d'utilisateurs paramétrés pour le certificat (a défaut de nom, il faut utiliser l'adresse ip du serveur).
  
 +====== Biblio ======
 +  * Considérations de sécurité sur openSsh : [[http://www.ssi.gouv.fr/uploads/IMG/pdf/NP_OpenSSH_NoteTech.pdf]]
ssh_configuration.1346064842.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)