Comment find par programme la key ssh par défaut?

Dans la plupart de mes expériences, par défaut, ssh regardera dans ~ / .ssh / id_rsa (.pub) pour la paire de keys par défaut.

Parfois, j'essaie d'écrire des scripts pour profiter de cet location de key par défaut, mais je finis par le coder (par exemple, DEFAULT_KEY_LOCATION="${HOME}/.ssh/id_rsa" ou quelque chose comme ça), ce qui me semble être un BadThing ™.

Existe-t-il des variables ou des sorties d'environnement à partir des outils ssh qui peuvent me dire quelle est l'location des keys par défaut des users?

Par exemple, y a-t-il des commands comme ssh-defaults --key-location ou variables d'environnement $ SSH_DEFAULT_KEY?

One Solution collect form web for “Comment find par programme la key ssh par défaut?”

De la page man pour ssh:

  -i identity_file Selects a file from which the identity (private key) for public key authentication is read. The default is ~/.ssh/identity for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2. Identity files may also be specified on a per-host basis in the configuration file. It is possible to have multiple -i options (and multiple identities specified in configuration files). ssh will also try to load certificatee information from the filename obtained by appending -cert.pub to identity filenames. 

Par la suite, si elle se trouve dans un location qui peut être trouvé automatiquement par ssh, le path ne doit pas être spécifié du tout. c'est à dire

 ssh -i ~/.ssh/id_rsa foo@bar.com 

et

 ssh foo@bar.com 

fonctionneront tous deux de la même manière. Si vous devez find l'location de la key par programmation pour une autre raison que l'utilisation de ssh (c'est-à-dire le remplissage des keys autorisées), vous pouvez vérifier tous les locations que le file de configuration vérifie et parsingr le file ssh_config pour searchr les inputs individuelles de l'hôte. De l'homme ssh_config:

  The file name may use the tilde syntax to refer to a user's home directory or one of the following escape characters: '%d' (local user's home directory), '%u' (local user name), '%l' (local host name), '%h' (remote host name) or '%r' (remote user name). 

Vous devriez donc parsingr ce format pour localiser les files individuels (si définis).

  • Comment get un count racine Ubuntu pour transférer les keys ssh en tant que machine d'apathement
  • Déploiement de multiples permissions autorisées sur plusieurs hôtes
  • La key d'hôte SSH semble changer de façon inattendue
  • Comment configurer une instance AWS pour permettre aux autres SSH?
  • Autoriser l'accès par mot de passe pour tous les utilisateurs, sauf la racine?
  • Mauvais propriétaire ou permissions sur /root/.ssh/config
  • Ansible avec les keys SSH
  • Comment automatiser l'envoi de la nouvelle key publique du server SSH aux users?
  • Impossible de forcer une authentification ssh sans passe passive lors du renvoi de port
  • Partage de la key publique avec ssh
  • ssh-copy-id - permission refusée (publickey)
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.