Comment puis-je ajouter une identité de manière permanente pour SSH?

31

Je dois exécuter ssh-add <key> à chaque fois que je dois ssh dans un serveur Web. Y a-t-il un moyen d'ajouter l'ID de façon permanente, donc je n'ai pas à continuer à ajouter les identités à chaque connexion?

EDIT: La clé est un fichier pem que j'ai téléchargé depuis un service cloud.

    
posée theTuxRacer 10.01.2011 - 06:33
la source

7 réponses

37

Générez votre clé comme d'habitude: ssh-keygen , puis placez cette clé sur le serveur distant avec ssh-copy-id , ce qui la synchronisera avec les clés acceptées du serveur distant.

ssh-keygen
ssh-copy-id [email protected]

Il vous demandera votre mot de passe, puis effectuera toutes les étapes nécessaires pour lier votre clé .pub au serveur SSH distant.

Par défaut, toutes les clés .pub seront copiées sur le serveur distant. Si vous venez de créer votre clé avec ssh-keygen , ce n'est pas un problème (car vous n'en avez qu'une!). Cependant, si vous avez plusieurs clés, vous ne pouvez copier qu'une clé spécifique avec l'indicateur -i .

ssh-copy-id -i ~.ssh/key_name.pub [email protected]

Remplacer key_name.pub par le nom de la clé.

    
réponse donnée Marco Ceppi 10.01.2011 - 17:29
la source
7

Vous pouvez générer une clé ssh avec la commande:

ssh-keygen

Ensuite, vous pouvez copier votre clé sur le serveur avec:

ssh [email protected] "echo 'cat ~/.ssh/id_dsa.pub' >> ~/.ssh/authorized_keys" 

Vous pouvez maintenant vous connecter automatiquement à votre serveur Web

    
réponse donnée Arthur Knopper 10.01.2011 - 08:24
la source
3

Si votre clé est sans mot de passe et nommée comme l'un des fichiers que ssh essaiera de rechercher lors de l'identification ( ~/.ssh/id_dsa ou ~/.ssh/id_rsa ), vous ne devriez pas avoir à l'ajouter à votre agent.

MAIS. S'il y a la moindre possibilité de vol de ces fichiers, vous auriez simplement autorisé quiconque à accéder aux serveurs sur lesquels vous utilisez cette identité. En bref, écrit.

À mon humble avis, les clés privées sans mot de passe sont une mauvaise pratique et ne doivent être utilisées que dans les environnements où ~/.ssh/authorized_keys est très restrictif.

    
réponse donnée zuzur 10.01.2011 - 10:46
la source
2

Ecrivez un court script shell qui exécutera ssh-add, puis connectez-vous comme suit:

ssh-add ~/.ssh/your-key
ssh [email protected]

Vous pouvez ensuite vous connecter à votre hôte avec une seule commande.

    
réponse donnée hgolov 18.04.2012 - 08:45
la source
0
 ssh [email protected] "cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys" 
    
réponse donnée wangjianli 10.01.2011 - 17:20
la source
0

mettez ceci dans votre ~/.bashrc

eval $(ssh-agent)
ssh-add ~/.ssh/where_ever_privake_key_is 
    
réponse donnée user626052 02.12.2016 - 03:36
la source
-1

Parlez-vous d'Amazon Cloud? Dans votre ~ / .bashrc, créez des variables d’environnement:

# Amazon
export EC2_PRIVATE_KEY=$HOME/Keys/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export EC2_CERT=$HOME/Keys/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
    
réponse donnée user8290 10.01.2011 - 15:09
la source

Lire d'autres questions sur les étiquettes