Est-ce que ssh autoload tout dans `.ssh`?

Selon le message suivant, il semble que lorsque vous ssh dans une boîte, par défaut, il charge toutes les keys (publiques et privées) dans ~/.ssh pour l'authentification sur le server auquel je me connecte.

Est-ce vrai? Ou devez-vous configurer votre file ~/.ssh/config et identifier les files IdentifyFiles sur les servers?

J'essaie de comprendre comment l'authentification fonctionne avec plusieurs keys privées sur votre machine locale.

Je suppose que vous voulez dire que vous souhaitez utiliser plusieurs keys privées sur un client, et non sur un server. Par défaut, le client ssh charge:

pour le protocole version 1

 ~/.ssh/identity 

pour le protocole version 2:

 ~/.ssh/id_dsa ~/.ssh/id_ecdsa ~/.ssh/id_ed25519 ~/.ssh/id_rsa 

Il essaiera toutes ces keys (jusqu'à ce que la première réussisse).

Si vous souhaitez append d'autres keys, vous avez deux options:

1. append une sélection par hôte via ~ / .ssh / config

Vous l'avez déjà mentionné, alors je suppose que vous le connaissez. En bref, cela ressemble à ceci:

 Host host1 HostName host1.example.com IdentityFile ~/.ssh/id_rsa_host1 Host host2 HostName host2.example.com IdentityFile ~/.ssh/id_rsa_host2 

2. utilisez le ssh-agent

Configurez le ssh-agent (beaucoup de documents sur google, par exemple http://mah.everybody.org/docs/ssh ), il vient par défaut avec OpenSSH. Vous pouvez append via

 ssh-add -i $KEY_FILE 

chaque key privée.

3. faites-le manuellement

démarrez le client ssh avec l'option -i pour sélectionner la key que vous souhaitez utiliser.

 ssh -i $KEY_FILE 

Je suggère d'utiliser l'option 2 (ssh-agent), cela vous offre plusieurs avantages en plus, mais tout dépend de votre situation.

Selon le manuel:

  ~/.ssh/identity ~/.ssh/id_dsa ~/.ssh/id_ecdsa ~/.ssh/id_ed25519 ~/.ssh/id_rsa Contains the private key for authentication. These files contain sensitive data and should be readable by the user but not acces‐ sible by others (read/write/execute). ssh will simply ignore a private key file if it is accessible by others. It is possible to specify a passphrase when generating the key which will be used to encrypt the sensitive part of this file using 3DES. 

Alors oui, ssh chargera toutes ces keys. Si vous avez un server sur lequel vous avez besoin d'une key spécifique pour vous connecter, vous devez configurer cet hôte dans ~ / .ssh / config

Notez qu'il n'est pas nécessaire d'avoir plus d'une paire de keys. Votre key publique est publique et peut être ajoutée en toute security au file ~ / .ssh / authorized_keys dans tous les servers auxquels vous vous connectez. Personne ne peut rien faire sans votre key privée.

La seule situation où vous pourriez avoir besoin d'une key différente pour un server est si vous n'avez pas access à votre file authorized_keys (car c'est un server sftp ou scp ou rsync uniquement) et vous souhaitez réutiliser votre paire de keys déjà configurée.