Clés SSH Windows 10


112

J'ai vraiment du mal à faire fonctionner mes clés SSH après l'installation de Windows 10. La méthode normale consiste à le créer et à le lancer dans le compte de l'utilisateur sous .ssh. Ce dossier ne semble pas être disponible dans Windows 10.

Quelqu'un d'autre a rencontré ça? J'ai besoin de 3 clés SSH pour différents dépôts et cela me retient vraiment.


2
Windows 10 cache-t-il les dossiers de points?
Leland Barton

Non, c'est ce que j'avais pensé au début aussi, mais il en a ajouté quelques-uns depuis l'installation.
Rudenate3

2
Veuillez déplacer votre question vers Super utilisateur . C'est hors sujet ici.
Martin Prikryl

3
@MartinPrikryl Étant donné que beaucoup de codage sous Linux, l'utilisation de Github, etc. implique des clés ssh et .ssh, je dirais que c'est très pertinent pour Stackoverflow.
haziz

2
Je suis d'accord avec Martin. Une question de programmation est une question sur l'écriture d'un programme, pas une question qu'un programmeur pourrait poser.
Bacon Bits

Réponses:


131
  1. Ouvrez la ligne de commande Windows (tapez "cmd" dans la zone de recherche et appuyez sur Entrée).
  2. Il sera par défaut dans votre dossier de départ, vous n'avez donc pas besoin d'en cdchoisir un autre.
  3. Type ssh-keygen
  4. Suivez les instructions et vous êtes prêt à partir
  5. Vos clés ssh doivent être stockées dans le répertoire choisi, la valeur par défaut est: /c/Users/YourUserName/.ssh/id_rsa.pub

ps: Si vous avez installé git avec l'intégration bash (comme moi), ouvrez "Git Bash" au lieu de "cmd" à la première étape


36
cela a l'air génial sauf que cela ne fonctionne pas. il n'y a pas de commandessh-keygen
roberto tomás

10
pour une raison quelconque, j'ai dû exécuter la ssh-keygencommande dans le shell git-bash au lieu de cmd-shell.
Olian04

6
Pour cela, vous pouvez utiliser Git Bash sheel ou git cmd, vous ne pouvez pas utiliser Windows cmd.
Pavan T

6
En décembre 2018, cela fonctionnait dès le départ dans Win 10 pour moi
Urs

1
@Suncatcher Oui. Pour vous connecter à Github, DigitalOcean, etc., vous avez besoin de la clé publique qui se trouve dans "id_rsa.pub" dans le même dossier. Ouvrez-le avec un éditeur de texte comme le bloc-notes et copiez et collez là où vous devez ajouter votre clé SSH.
Goose

57

MISE À JOUR DU 07/04/2019: J'ai testé aujourd'hui avec une nouvelle version de Windows 10 (build 1809, «mise à jour d'octobre 2018») et non seulement le client SSH ouvert n'est plus en version bêta, car il est déjà installé. Donc, tout ce que vous avez à faire est de créer la clé et de configurer votre client pour utiliser open SSH au lieu de putty (pagent):

  1. ouvrir l'invite de commande (cmd)
  2. entrez ssh-keygenet appuyez sur enter
  3. appuyez sur Entrée pour tous les paramètres. maintenant votre clé est enregistrée dans c: \ Users \ .ssh \ id_rsa.pub
  4. Ouvrez votre client git et configurez-le pour utiliser open SSH

J'ai testé sur Git Extensions et Source Tree et cela a fonctionné avec mon dépôt personnel dans GitHub. Si vous êtes dans une version antérieure de Windows ou préférez un client graphique pour SSH, veuillez lire ci-dessous.

2018-06-04 MISE À JOUR:

Sur Windows 10, à partir de la version 1709 (win + R et tapez winverpour trouver le numéro de build), Microsoft publie une version bêta du client et du serveur OpenSSH. Pour pouvoir créer une clé, vous devez installer le serveur OpenSSH. Pour le faire, suivez ces étapes:

  1. ouvrir le menu de démarrage
  2. Tapez "fonctionnalité facultative"
  3. sélectionnez "Ajouter une fonctionnalité facultative"
  4. Cliquez sur "Ajouter une fonctionnalité"
  5. Installez "Open SSH Client"
  6. Redémarrer le PC

Vous pouvez maintenant ouvrir une invite et ssh-keygenle client sera reconnu par Windows. Je n'ai pas testé cela. Si vous n'avez pas Windows 10 ou ne souhaitez pas utiliser la version bêta, suivez les instructions ci-dessous pour savoir comment utiliser le mastic.


ssh-keygenne vient pas installé avec Windows. Voici comment créer une clé ssh avec Putty:

  1. Installer du mastic
  2. Ouvrez PuttyGen
  3. Vérifiez le type de clé et le nombre d'octets à utiliserParamètres PuttyGen
  4. Déplacez la souris sur la barre de progression génération de clé avec entrée de souris
  5. Vous pouvez maintenant définir une phrase secrète et enregistrer les clés publiques et privées boîte de dialogue de création de clé

Pour les clés openssh, quelques étapes supplémentaires sont nécessaires:

  1. copiez le texte de la zone de texte "Clé publique à coller" et enregistrez-le sous "id_rsa.pub"
  2. Pour enregistrer la clé privée au format openssh, allez dans Conversions-> Exporter la clé OpenSSH (si vous n'avez pas défini de clé de passe, il vous demandera de confirmer que vous ne voulez pas de clé de passe) menu pour convertir la clé au format OpenSSH
  3. Enregistrez-le sous "id_rsa"

Maintenant que les clés sont enregistrées. Commencez pagentet ajoutez-y la clé privée (le fichier ppk au format Putty) boîte de dialogue des clés d'agent

N'oubliez pas que pagentdoit être en cours d'exécution pour que l'authentification fonctionne


6
ssh-keygen est inclus dans Windows 10,
je

1
@sebbu En effet, maintenant sur Windows 10, vous pouvez installer une version bêta du serveur Open SSH dans la section "Gérer les fonctionnalités optionnelles" et cela vous permettra d'obtenir ssh-keygen avec quelques autres choses. Mais il n'est pas installé et ce n'est pas vraiment facile à trouver. Je mettrai à jour ma réponse.
franksands

1
@KarlMorrison pagent est l'interface graphique pour effectuer l'authentification ssh. il se trouve généralement dans le menu Démarrer.
franksands

1
Vous n'avez pas besoin d'installer le serveur Open SSH. La fonctionnalité Open SSH Client inclut ssh-keygen.
Onots

1
@Onots j'ai testé avec une nouvelle version de Windows 10 (mise à jour d'octobre 2018) et non seulement le client ssh ouvert est suffisant, mais il est déjà installé: D Je vais mettre à jour ma réponse
franksands

31

WINDOWS: Si vous avez installé git pour Windows, allez dans son dossier.

entrez la description de l'image ici

Regardez dans le répertoire bin. Il existe un fichier sh.exe. Exécutez ça.

entrez la description de l'image ici

Tapez ensuite:

ssh-keygen -t rsa -C "votre email ici"

Suivez les instructions, puis tapez:

cat ~ / .ssh / id_rsa.pub | agrafe

Il copie la clé dans votre presse-papiers. Vous pouvez maintenant coller cette clé publique côté serveur.


13
  1. Ouvrez la ligne de commande Windows (tapez "cmd" dans la zone de recherche et appuyez sur Entrée).
  2. Il sera par défaut dans votre dossier de départ, vous n'avez donc pas besoin d'en cdchoisir un autre.
  3. Type mkdir .ssh

9

Attention: Si vous enregistrez vos clés sous C: /User/username/.ssh (l'emplacement par défaut), assurez-vous de sauvegarder vos clés quelque part (par exemple votre gestionnaire de mots de passe).

Après la dernière mise à jour de Windows 10 (version 1607), mon dossier .ssh était vide. C'est là que mes clés ont toujours été, mais Windows a décidé de les supprimer lors de la mise à jour.

Heureusement, j'avais sauvegardé mes clés ... Mais ... je parie que certaines personnes reviendront sur leur PC aujourd'hui.


Alors, où la plupart des applications s'attendent-elles à ce que vous stockiez vos clés?
wcochran

3
probablement dans le dossier que Windows supprime au hasard lors de la mise à niveau de Windows 10?
Andrew

8

J'utilise Microsoft Windows 10 Pro, version 10.0.17763 Build 17763, et je vois facilement mon dossier .ssh dans C: \ Users \ jrosario \ .ssh sans avoir à modifier les autorisations ou quoi que ce soit (bien que dans l'Explorateur de fichiers, j'ai sélectionné "Afficher les fichiers, dossiers et lecteurs cachés"): entrez la description de l'image ici

Les clés sont stockées dans un fichier texte nommé known_hosts, qui ressemble à peu près à ceci: entrez la description de l'image ici


5

J'ai trouvé une exception notable dans Windows 10, en utilisant la route décrite, n'écrivait les fichiers dans le dossier que si les noms de fichiers n'étaient pas spécifiés dans le générateur ssh-keygen.

donner un nom de clé personnalisé empêchait d'écrire dans le dossier les fichiers contenant les clés publiques et privées RSA.

  • Ouvrez la ligne de commande Windows
  • Type ssh-keygen
  • Laissez le nom de fichier vide, appuyez simplement sur retour,
  • Définissez votre phrase secrète
  • Générez vos fichiers clés. Ils existeront désormais. et être stocké dansc:/Users/YourUserName/.ssh/

(à l' aide de la ligne de commande Admin et de Windows 10 Professionnel )


@Braineeee négatif. Cela n'écrasera PAS vos clés, si des clés existent actuellement dans la destination, alors dans la fenêtre de ligne de commande, il vous demandera si vous souhaitez écraser ces clés. Les autres clés du même dossier ne sont pas affectées . Je sais qu'après avoir lu votre commentaire, j'ai fait un essai et j'ai trouvé que c'était le cas.
Martin

Avez-vous déjà compris pourquoi?
Damainman

@Damainman, malheureusement, je n'ai pas encore eu l'occasion d'explorer cela davantage, donc non:-/
Martin

1
Merci @Martin, tu as sauvé ma journée. Je suis capable de créer les fichiers avec des noms différents. Nous devons fournir le séparateur de chemin de manière unix! Ce qui suit a fonctionné pour moi. ssh-keygen -t ed25519 -C "My Github Key" Entrez le fichier dans lequel enregistrer la clé (C: \ Users \ bilix / .ssh / id_ed25519): c: \ users \ bilix \ .ssh \ id_ed25519_github
Prakash P

@PrakashP heureux de vous aider!
Martin

4

Créer une clé privée / publique:

  1. Ouvrez le terminal up ( git bash, PowerShell, cmd.exeetc.)
  2. Tapez ssh-keygen
  3. Appuyez sur Entrée pour enregistrer le fichier par défaut ( ~/.ssh/id_rsa)
  4. Appuyez sur Entrée pour la phrase de passe par défaut (pas de phrase de passe)
  5. Appuyez à nouveau sur Entrée
  6. Regardez la sortie et assurez-vous que la valeur RSAest 3072ou supérieure

Vous avez maintenant créé une paire de clés privée / publique.

Pour GIT, la clé doit avoir une force de 2048, doit être située dans le .sshrépertoire des utilisateurs et être appelée id_rsaet id_rsa.pub. Lorsque vous collez les clés n'importe où, assurez-vous d'utiliser un programme qui n'ajoute pas de nouvelles lignes comme VIM.


2

Je l'ai finalement fait fonctionner en exécutant la ligne de commande d'ouverture avec "Exécuter un administrateur" même si j'étais déjà administrateur et que je pouvais créer un répertoire manuellement


1

Si vous avez Windows 10 avec le client OpenSSH, vous pourrez peut-être générer la clé, mais vous aurez du mal à la copier dans la boîte Linux cible car la commande ssh-copy-id ne fait pas partie de l'ensemble d'outils client.

Ayant eu ce problème, j'ai écrit une petite fonction PowerShell pour résoudre ce problème, que vous ajoutez à votre profil.

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {   
    # Get the generated public key
    $key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    # Verify that it exists
    if (!(Test-Path "$key")) {
        # Alert user
        Write-Error "ERROR: '$key' does not exist!"            
    }
    else {  
        # Copy the public key across
        & cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

Vous pouvez obtenir l' essentiel ici

J'ai un bref article à ce sujet ici


0

En outre, vous pouvez essayer (pour Windows 10 Professionnel) Exécutez Powershell en tant qu'administrateur et tapez ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.