Je souhaite utiliser plusieurs clés privées pour me connecter à différents serveurs ou à différentes parties du même serveur (mes utilisations sont l'administration système du serveur, l'administration de Git et l'utilisation normale de Git au sein du même serveur). J'ai essayé d'empiler simplement les clés dans les id_rsa
fichiers en vain.
Apparemment, un moyen simple de le faire est d'utiliser la commande
ssh -i <key location> [email protected]
C'est assez lourd.
Avez-vous des suggestions sur la façon de procéder un peu plus facilement?
Réponses:
De mon
.ssh/config
:Etc.
la source
IdentityFile
entrées pour la mêmeHost
, qui sont ensuite essayées dans l'ordre lors de la connexion.IdentitiesOnly yes
pour empêcher ~ / .ssh / id_rsa ou toute autre identité. (C'était à l'origine une modification)Vous pouvez demander à ssh d'essayer plusieurs touches successivement lors de la connexion. Voici comment:
De cette façon, vous n'avez pas à spécifier quelle clé fonctionne avec quel serveur. Il utilisera simplement la première clé de travail.
Vous ne devez également saisir une phrase secrète que si un serveur donné est prêt à accepter la clé. Comme vu ci-dessus, ssh n'a pas essayé de demander un mot de passe
.ssh/id_rsa
même s'il en avait un.Cela ne surpasse certainement pas une configuration par serveur comme dans les autres réponses, mais au moins vous n'aurez pas à ajouter une configuration pour tous les serveurs auxquels vous vous connectez!
la source
La réponse de Randal Schwartz m'a presque aidé tout du long. J'ai un nom d'utilisateur différent sur le serveur, j'ai donc dû ajouter le mot-clé User à mon fichier:
Vous pouvez maintenant vous connecter en utilisant le nom convivial:
D'autres mots clés peuvent être trouvés sur la page de manuel d'OpenSSH . REMARQUE: certains des mots clés répertoriés peuvent déjà être présents dans votre fichier / etc / ssh / ssh_config .
la source
Les réponses précédentes ont correctement expliqué la façon de créer un fichier de configuration pour gérer plusieurs clés ssh. Je pense que la chose importante qui doit également être expliquée est le remplacement d'un nom d'hôte par un nom d'alias lors du clonage du référentiel .
Supposons que votre le nom d'utilisateur du compte GitHub de entreprise soit abc1234 . Et supposez que le nom d'utilisateur de votre compte GitHub personnel est jack1234
Et supposons que vous ayez créé deux clés RSA, à savoir id_rsa_company et id_rsa_personal . Donc, votre configuration fichier de ressemblera à ci-dessous:
Maintenant, lorsque vous clonez le référentiel (nommé démo) du compte GitHub de l'entreprise, l'URL du référentiel sera quelque chose comme:
Maintenant, en faisant cela
git clone
, vous devez modifier l'URL du référentiel ci-dessus comme:Remarquez comment github.com est maintenant remplacé par l'alias "entreprise" comme nous l'avons défini dans le fichier de configuration.
De même, vous devez modifier l'URL de clonage du référentiel dans le compte personnel en fonction de l'alias fourni dans le fichier de configuration.
la source
Assurez-vous de le tester avant d'ajouter avec:
Si vous rencontrez des problèmes avec des erreurs, il peut parfois être utile de modifier la sécurité du fichier:
la source
Générez une clé SSH:
Générez une autre clé SSH :
Maintenant, deux clés publiques ( id_rsa.pub , accountB.pub ) devrait être existe dans le
~/.ssh/
répertoire.Créez un fichier de configuration
~/.ssh/config
avec le contenu suivant:Cloner à partir du
default
compte.Clonez depuis le
accountB
compte.Voir plus ici
la source
Je serais d'accord avec Tuomas sur l'utilisation de ssh-agent. Je voulais également ajouter une deuxième clé privée pour le travail et ce tutoriel a fonctionné comme un charme pour moi.
Les étapes sont les suivantes:
$ ssh-agent bash
$ ssh-add /path.to/private/key
par exemplessh-add ~/.ssh/id_rsa
$ ssh-add -l
$ssh -v <host url>
par exemplessh -v [email protected]
la source
ssh-agent
pendant des années, je suis récemment passé à l'utilisation de Gnomegnome-keyring
dans moni3
wm. La raison est simple: le gestionnaire de trousseaux de clés de Gnome gère automatiquement l'ajout et la suppression de clés ssh sans que je m'en souviennessh-add
. En plus de me fournir un seul mot de passe pour les déverrouiller (et un timeout à une heure précise, pour des raisons de sécurité). À chacun ses goûts. Depuis que j'utilise les paramètres gnome sur Arch, c'était plug n play avec ma configuration. Si vous êtes anti-gnome, ignorez ce commentaire.J'avais rencontré ce problème il y a quelque temps, quand j'avais deux comptes Bitbucket et que je voulais avoir à stocker des clés SSH distinctes pour les deux. C'est ce qui a fonctionné pour moi.
J'ai créé deux configurations ssh distinctes comme suit.
Maintenant, quand j'ai dû cloner un référentiel de mon compte professionnel - la commande était la suivante.
J'ai dû modifier cette commande pour:
De même, la commande de clonage de mon compte personnel a dû être modifiée pour
Reportez - vous à ce lien pour plus d'informations.
la source
Utilisez ssh-agent pour vos clés.
la source
Maintenant, avec la version récente de Git, nous pouvons spécifier sshCommand dans le fichier de configuration Git spécifique au référentiel:
la source
Vous pouvez créer un fichier de configuration nommé
config
dans votre~/.ssh
dossier. Il peut contenir:Cela vous permettra de vous connecter à des machines comme celle-ci
la source
IMPORTANT: vous devez démarrer ssh-agent
Vous devez démarrer ssh-agent (s'il ne fonctionne pas déjà) avant d'utiliser ssh-add comme suit:
Notez que la commande eval démarre l'agent sur Git Bash sous Windows. D'autres environnements peuvent utiliser une variante pour démarrer l'agent SSH.
la source
Sur Ubuntu 18.04 (Bionic Beaver), il n'y a rien à faire.
Après avoir créé une deuxième clé SSH avec succès, le système essaiera de trouver une clé SSH correspondante pour chaque connexion.
Juste pour être clair, vous pouvez créer une nouvelle clé avec ces commandes:
la source
Plusieurs paires de clés sur GitHub
1.0 Fichier de configuration SSH
1.1 Créer ~ / .ssh / config
1.2 chmod 600 ~ / .ssh / config ( doit )
1.3 Saisissez les informations suivantes dans le fichier:
Cas A: nouveau clone de Git
Utilisez cette commande pour cloner Git:
Remarque: Si vous souhaitez modifier le nom d'hôte «pizza» de .ssh / config à l'avenir, accédez au dossier cloné Git, modifiez la ligne d'URL du fichier .git / config (voir le cas B)
Cas B: Vous avez déjà un dossier de clonage Git
2.1 Accédez au dossier cloné, puis accédez au dossier .git
2.2 Modifier le fichier de configuration
2.3 Mettez à jour l'URL de * ancien vers nouveau :
la source
Pour moi, la seule solution de travail était d'ajouter simplement ceci dans le fichier
~/.ssh/config
:your_ssh_key
est sans aucune extension. Ne pas utiliser.pub
.la source
Sur CentOS 6.5 exécutant OpenSSH_5.3p1 et OpenSSL 1.0.1e-fips, j'ai résolu le problème en renommant mes fichiers de clé afin qu'aucun d'entre eux n'ait le nom par défaut.
Mon répertoire .ssh contient id_rsa_foo et id_rsa_bar, mais pas id_rsa, etc.
la source
-i
option peut entraîner quelque chose commeno such identity: /home/embo/.ssh/id_rsa: No such file or directory
.Comme mentionné sur une page de blog Atlassian , générez un fichier de configuration dans le dossier .ssh , comprenant le texte suivant:
Ensuite, vous pouvez simplement commander avec le domaine suffixe et dans les projets, vous pouvez configurer les noms des auteurs, etc. localement.
la source
Voici la solution que j'ai utilisée inspirée de la réponse de sajib-khan . La configuration par défaut n'est pas définie; c'est mon compte personnel sur GitLab et l'autre spécifié est mon compte d'entreprise. Voici ce que j'ai fait:
Générez la clé SSH
Modifier la configuration SSH
Supprimer la ou les clés SSH mises en cache
Essaye-le!
Utilise le!
Compte d'entreprise
Compte personnel / par défaut
Voici la source que j'ai utilisée.
la source
J'adore l'approche pour définir ce qui suit dans le fichier ~ / .ssh / config:
Ensuite, dans votre référentiel, vous pouvez créer un
.env
fichier qui contient lassh
commande à utiliser:Si vous utilisez ensuite par exemple dotenv, la variable d'environnement d'environnement est exportée automatiquement et whoop whoop, vous pouvez spécifier la clé souhaitée par projet / répertoire. La phrase secrète n'est demandée qu'une seule fois car elle est ajoutée au trousseau.
Cette solution fonctionne parfaitement avec Git et est conçue pour fonctionner sur un Mac (en raison de
UseKeychain
).la source
Vous pouvez essayer ce package sshmulti npm pour gérer plusieurs clés SSH.
la source