Comment se connecter en ssh sans entrer la paraphrase key

Lume56 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33873 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

J'ai un Raspberry qui fait office de serveur et je me connecte en ssh à l'aide de la clé id_ed25519. Tout se passe bien sauf que je voudrais éviter de renseigner la paraphrase à chaque connexion.

J'ai consulté pas mal de pages et j'ai trouvé keychain mais je dois entrer la paraphrase à chaque connexion. Existe-t-il un moyen de se connecter au serveur sans avoir à l'entrer ?
Voici un extrait de ssh_config sur le poste client et le fichier sshd_config sur le serveur.

ssh_config

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.

Include /etc/ssh/ssh_config.d/*.conf

Host 192.168.1.27
Host *
   PasswordAuthentication no
   PreferredAuthentications publickey
#     IdentityFile ~/.ssh/id_ed25519
  Port 22

    SendEnv LANG LC_* COLORTERM NO_COLOR
    HashKnownHosts yes
    GSSAPIAuthentication yes

sshd_config

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.

Include /etc/ssh/ssh_config.d/*.conf

Host 192.168.1.27
Host *
   PasswordAuthentication no
   PreferredAuthentications publickey
#     IdentityFile ~/.ssh/id_ed25519
  Port 22

    SendEnv LANG LC_* COLORTERM NO_COLOR
    HashKnownHosts yes
    GSSAPIAuthentication yes


Qui aurait une piste ? Merci !


Linux / Firefox 140.0

A voir également:

4 réponses

brucine Messages postés 23471 Date d'inscription   Statut Membre Dernière intervention   3 883
 

Bonjour,

apparemment comme ça, mais la voie keychain ne va pas supprimer globalement la paraphrase, elle va simplement la limiter à chaque reboot au lieu de chaque connexion.

https://learn-linux.com/2022/10/06/benefit-of-keychain-over-ssh-agent/

0
Lume56 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 

Merci. Je crois que j'obtiens la même chose sans installer keychain. J'ai constaté qu'une fois connecté au serveur (en entrant la paraphrase), je pouvais quitter le serveur et me reconnecter sans avoir à entrer de nouveau la paraphrase... Par contre, une nouvelle session exigera d'entrer la paraphrase.

0
brupala Messages postés 112478 Date d'inscription   Statut Membre Dernière intervention   14 281
 

Salut,

une petite chose:

La passphrase, contrairement à la clé nest pas demandée par le serveur où tu te connectes, mais par ton SSH client local qui en a besoin pour accéder à ta clé privée, stockée localement.

0
Lume56 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 

Merci pour la précision. C'est plus clair. 

Je vais poster ailleurs un autre message sur la migration vers le web de mon site installé sur le serveur qui est encore en mode local. Je cafouille encore avec les VirtualHosts. À bientôt ;=)

0
mamiemando Messages postés 33873 Date d'inscription   Statut Modérateur Dernière intervention   7 902
 

Bonjour,

Lorsque tu crées une clé SSH, on te demande de la protéger avec une passphrase. Ce n'est pas obligatoire mais fortement recommandé pour sécuriser ta clé SSH.

Une solution possible (mais que je ne recommande pas) consisterait donc à créer une clé SSH avec une passphrase vide (donc pas de passphrase).

La solution propre consiste à utiliser :

ssh-add

Tu peux contrôler que ton identité est chargée avec :

ssh-add -L

Ce mécanisme a plusieurs intérêts pratiques notables :

  • Authentification transparente : On ne lance qu'une seule fois ssh-add (typiquement, quand on lance Linux). Dès lors, toutes les authentifications ssh pouvant s'appuyer sur cette clé sont faites de manière transparente (pas besoin de saisir la passphrase à chaque fois qu'on exploite la clé).
  • Pas de fuite d'information sensible : Dans ssh, la clé publique (e.g. ~/.ssh/id_rsa.pub) est l'équivalent d'un cadenas et la clé privée correspondante (~/.ssh/id_rsa) peut être vue comme la clé capable d'ouvrir ce cadenas.
    • Lorsqu'on installe une clé SSH sur une machine distance (par exemple avec ssh-copy-id), on dissémine sa clé publique (un cadenas). Rien de grave puisqu'on est les seul à en détenir la clé.
    • Cependant, la clé privée, elle, ne doit jamais être disséminée, sans quoi tous les cadenas concernés sont potentiellement compromis. C'est donc un fichier sensible.
    • Alors comment exploiter une clé SSH pour se connecter vers A, puis vers B, puis vers C, sans copier la clé privée sur A et B ? C'est là que ssh-add entre en jeu. En effet, ssh-add permet de transporter au grès des connexions SSH son identité SSH. On peut d'ailleurs le vérifier une fois connecté sur A, B, ou C avec la commande : 
      ssh-add -L

Bonne chance

0