Je suis # 335 Lors du déploiement sur un VPS , et vers la fin de l'épisode, nous devons exécuter ssh-add
pour permettre au serveur d'accéder au référentiel github.
Le problème est comment puis-je l'exécuter dans Windows? Quel besoin d'installer?
Je sais que pour exécuter ssh
pour accéder au serveur distant, je peux utiliser PuTTY
. Mais cette commande doit être exécutée localement, je sais comment utiliser PuTTY
pour le faire.
On pourrait installer Git pour Windows et ensuite exécuter ssh-add
:
Étape 3: Ajoutez votre clé à l'agent ssh
Pour configurer le programme ssh-agent afin qu’il utilise votre clé SSH:
Si vous avez installé GitHub pour Windows, vous pouvez l’utiliser pour cloner des référentiels et ne pas gérer les clés SSH. Il est également livré avec l'outil Git Bash, qui est le moyen privilégié d'exécuter des commandes git sous Windows.
Assurez-vous que ssh-agent est activé:
Si vous utilisez Git Bash, activez ssh-agent:
# start the ssh-agent in the background ssh-agent -s # Agent pid 59566
Si vous utilisez une autre invite de terminal, telle que msysgit, activez ssh-agent:
# start the ssh-agent in the background eval $(ssh-agent -s) # Agent pid 59566
Ajoutez votre clé SSH à ssh-agent:
ssh-add ~/.ssh/id_rsa
Réponse originale
Assurez-vous d'avoir installé Git et d'avoir le dossier cmd
de git dans votre PATH. Par exemple, sur mon ordinateur, le chemin d'accès au dossier cmd de git est C:\Program Files\Git\cmd
Assurez-vous que votre fichier id_rsa
est dans le dossier c:\users\yourusername\.ssh
Redémarrez votre invite de commande si vous ne l'avez pas déjà fait, puis exécutez start-ssh-agent
. Il trouvera votre id_rsa
et vous demandera la phrase secrète.
Mise à jour 2019 - Une meilleure solution si vous utilisez Windows 10: OpenSSH est disponible avec Windows 10, ce qui rend l'utilisation de SSH depuis cmd/powershell beaucoup plus facile à mon avis. Cela ne dépend pas non plus de la présence de git, contrairement à ma solution précédente.
Ouvrez Manage optional features
dans le menu de démarrage et assurez-vous que vous avez bien Open SSH Client
dans la liste. Sinon, vous devriez pouvoir l'ajouter.
Ouvrez Services
à partir du menu de démarrage
Faites défiler jusqu'à OpenSSH Authentication Agent
> clic droit> propriétés
Changez le type de démarrage de Désactivé à l’une des 3 autres options. J'ai le mien réglé sur Automatic (Delayed Start)
Ouvrez cmd et tapez where ssh
pour confirmer que le chemin en haut de la liste est dans System32. Le mien est installé à C:\Windows\System32\OpenSSH\ssh.exe
. Si ce n'est pas dans la liste, vous devrez peut-être fermer et rouvrir cmd.
Une fois que vous avez suivi ces étapes, ssh-agent, ssh-add et toutes les autres commandes ssh doivent maintenant fonctionner à partir de cmd. Pour démarrer l'agent, vous pouvez simplement taper ssh-agent
.
GIT_SSH
sur la sortie de where ssh
que vous avez exécutée auparavant (par exemple, C:\Windows\System32\OpenSSH\ssh.exe
). Ceci permet d'éviter les incohérences entre la version de ssh que vous utilisez (et vos clés sont ajoutées/générées avec) et la version que git utilise en interne. Cela devrait éviter des problèmes similaires à celui-ciQuelques bonnes choses à propos de cette solution:
id_rsa
J'espère que cela t'aides
Pour exécuter ssh-add
sous Windows, vous pouvez installer git à l'aide de choco install git
. La commande ssh-add
est reconnue une fois que C:\Program Files\Git\usr\bin
a été ajouté en tant que variable PATH et que l'invite de commande a été redémarrée:
C:\Users\user\Desktop\repository>ssh-add .ssh/id_rsa
Enter passphrase for .ssh/id_rsa:
Identity added: .ssh/id_rsa (.ssh/id_rsa)
C:\Users\user\Desktop\repository>
ssh-add est la commande pour ajouter une clé à un agent local. PuTTY a son propre programme d'agents appelé pageant , qui remplit la même fonction.
L’interface graphique Git pour Windows a une application basée sur une fenêtre qui vous permet de coller des emplacements pour les clés ssh et l’URL de dépôt, etc.:
Si vous essayez de configurer une clé pour utiliser git avec ssh, vous avez toujours la possibilité d'ajouter une configuration pour le fichier d'identité.
vi ~/.ssh/config
Host example.com
IdentityFile ~/.ssh/example_key