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).

  • ssh sans mot de passe dans VM - file de keys autorisé étrange
  • Existe-t-il un «svn up» utilisant «https + ssh: //`?
  • Comment créez-vous une key ssh pour l'user apache sur Redhat?
  • est-il sûr d'échanger un système ssh-keys?
  • Comment sont exactement les keys SSH générées?
  • Impossible d'utiliser SSH ProxyCommand pour fonctionner (ssh_exchange_identification: connection fermée par un hôte distant)
  • Est-ce que Bash peut me dire quelle key publique SSH a été utilisée pour l'authentification?
  • Wordpress ne peut pas find la paire de keys publique et privée ssh
  • Accepte automatiquement l'empreinte digitale de la clé rsa à partir de la ligne de commande
  • Est-ce que Mac OS X Cache Private Keys pour SSH?
  • Impossible de se connecter à mon instance EC2 en raison de "Autorisation refusée (publickey)"
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.