web-dev-qa-db-fra.com

Comment transférer une paire de clés locale dans une session SSH?

Je déploie manuellement des sites Web via SSH, je gère le code source dans github/bitbucket. Pour chaque nouveau site, je génère actuellement une nouvelle paire de clés sur le serveur et l'ajoute à github/bitbucket, afin que je puisse tirer des chances du serveur.

Je suis tombé sur une fonctionnalité de capistrano pour utiliser la paire de clés de la machine locale pour extraire les mises à jour du serveur, qui est ssh_options[:forward_agent] = true

Comment puis-je faire quelque chose comme ça et transmettre la paire de clés de ma machine locale au serveur sur lequel je suis SSH, afin que je puisse éviter d'ajouter des clés dans github/bitbucket pour chaque nouveau site.

41
Sathish Manohar

Cela s'est avéré être un guide très simple, complet est ici tilisation de SSH Forwarding

En substance, vous devez créer un ~/.ssh/config fichier, s'il n'existe pas.

Ensuite, ajoutez les hôtes (nom de domaine ou adresse IP dans le fichier et définissez ForwardAgent yes)

Exemple de code:

Host example.com
    ForwardAgent yes

Rend la vie SSH beaucoup plus facile.

53
Sathish Manohar
  1. Créez ~/.ssh/config
  2. Remplissez-le avec (l'adresse de l'hôte est l'adresse de l'hôte auquel vous souhaitez autoriser le transfert des crédits):

    Host [Host address]
         ForwardAgent yes
    
  3. Si vous n'avez pas encore exécuté ssh-agent, exécutez-le:

    ssh-agent
    
  4. Prenez la sortie de cette commande et collez-la dans le terminal. Cela définira les variables d'environnement qui doivent être définies pour que le transfert d'agent fonctionne. En option, vous pouvez remplacer cela et l'étape 3 par:

    eval "$(ssh-agent)"
    
  5. Ajoutez la clé que vous souhaitez transmettre à l'agent ssh:

    ssh-add [path to key if there is one]/[key_name].pem
    
  6. Connectez-vous à l'hôte distant:

    ssh -A [user]@[hostname]
    
  7. À partir d'ici, si vous vous connectez à un autre hôte qui accepte cette clé, cela fonctionnera simplement:

    ssh [user]@[hostname]
    
22
sdconrox

Le fichier de configuration est très utile mais l'astuce pour le transfert d'agent fait le ssh-add commande. Il semble que cela doit être déclenché initialement avant toute connexion à distance ou après le redémarrage de l'ordinateur. Pour ajouter définitivement la clé, essayez la solution suivante de l'utilisateur daminetreg: Ajouter une clé privée en permanence avec ssh-add sur Ubunt

1
Faulancer