Clé SSH - demande Toujours le mot de passe et le mot de passe
J'ai été un peu "mise en place" avec Github demande toujours de mon nom d'utilisateur et le mot de passe quand j'ai cloner un dépôt. Je veux ignorer cette étape parce que c'est une gêne dans mon flux de travail.
J'ai essayé la configuration d'une clé SSH (que j'ai réussi a) à l'aide de ce guide. https://help.github.com/articles/generating-ssh-keys et j'ai réussi.
Mon problème est que je me suis toujours demandé pour mon github mot de passe et le mot de passe lors du clonage d'un référentiel (à l'aide de SSH). Ma compréhension est qu'après que j'ai mis en place cette clé SSH, je voudrais ne plus avoir à le faire.
Je suis un peu incertain ce qu'il faut demander, donc je vais juste l'état de mon objectif.
Je veux être en mesure de cloner des dépôts sans avoir à mettre dans mon Github de l'information tout le temps.
Ce qui me manque avec ma clé SSH? Si quelqu'un peut donner des conseils ou des ressources, je vous serais reconnaissant, car j'ai toujours senti un peu perdu quand il est venu à l'authentification SSH sur GitHub.
De ma connaissance, c'est une commande qui teste si les choses fonctionnent correctement, voici la sortie de ma console:
~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.
Quand je saisir mon mot de passe que l'échec en premier? Alors, quand je rentre mon mot de passe, il passe.
- Dans quel système d'exploitation êtes-vous? Moderne Bureau Linux serait de proposer de stocker votre mot de passe dans un porte-clés manager. Même dans Mac OS X. sous Windows, vous pouvez utiliser
pageant
, qui fait partie deputty
. Dans tout cela, le but est le même: vous entrez le mot de passe qu'une seule fois après le démarrage de votre PC, la clé de gestionnaire d'agents de passer par ssh dans des utilisations ultérieures, jusqu'à ce que vous redémarrez. - Double de Git push requiert le nom d'utilisateur et le mot de passe
- Je suis un peu en retard à la fête ici, mais sur le petit clone onglet/bouton dans github, il y a un lien qui dit que "l'Utilisation de SSH". Vous voulez le faire. Il change votre clone lien vers quelque chose comme "git@github:username/project.git". Si vous avez ajouté une clé SSH pour github et l'avoir en cours d'exécution sur ssh-agent localement, alors vous devriez être en mesure de pousser sans entrer un nom d'utilisateur ou mot de passe.
Vous devez vous connecter pour publier un commentaire.
Si vous travaillez avec
HTTPs
url, il va toujours demander votre nom d'utilisateur /mot de passe.Si vous êtes correctement à l'aide de
SSH
lors du clonage de réglage /télécommandes. Ensuite, assurez-vous d'avoir un ssh-agent pour vous souvenir de votre mot de passe. De cette façon, vous n'aurez qu'à entrer votre mot de passe une fois par session de terminal.S'il est encore trop gênant, il vous suffit de définir une clé ssh sans mot de passe.
git remote -v
. Pour passer de l'https, ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Ajouter l'Identité sans Trousseau
Il peut y avoir des moments où vous ne voulez pas que la phrase de passe stockés dans le trousseau d'accès, mais ne voulez pas avoir à entrer le mot de passe encore et encore.
Vous pouvez le faire comme ceci:
Il vous demandera le mot de passe, entrez-le et il ne vous demandera pas de nouveau jusqu'à ce que vous redémarrez.
Ajouter L'Identité À L'Aide De Trousseau
Comme @dennis points dans les commentaires, à persister la phrase de passe par redémarre en les stockant dans votre trousseau de clés, vous pouvez utiliser le
-K
option (-k
pour Ubuntu) lors de l'ajout de l'identité comme ceci:Encore une fois, il vous demandera le mot de passe, entrez-le et cette fois, il ne vous demandera jamais de nouveau pour cette identité.
-K
option pour stocker le mot de passe de votre trousseau de clés lors de l'ajout, par exemple,ssh-add -K ~/.ssh/id_rsa
-k
pour moi... (Linux Mint / Ubuntu 14.04 base), mais oui! enfin triées cette...ssh-add
pour voir si la commande a même été installé sur mon ordinateur, et c'est en quelque sorte résolu tout de suite.ssh-add
ajoutera automatiquement~/.ssh/id_rsa
(parmi d'autres fichiers). Et il n'y a aucune raison d'envoyer la sortie vers/dev/null
; beaucoup mieux de voir le rapport de ce qu'il a fait.-t
drapeau:ssh-add -t 3600 ~/.ssh/id_rsa
-- il vous demandera le mot de passe, entrez-le et il ne vous demandera pas de nouveau pendant 1 heure (3600 secondes).ssh-add -A
correction du problème avec la phrase de passe à l'invite.ssh-add -K ~/.ssh/id_rsa
-K est inconnu.. en va de même pour Un... Ubuntu 18~/.ssh/config
et ajoutez une ligne pour la touche correspondanteIdentityFile ~/.ssh/id_rsa
. Elle peut être élargie à configurer des hôtes spécifiques, des ports, des utilisateurs, etc. recherche de "ssh fichier de config" à plonger plus profondément.config
fichierSur Mac OSX, vous pouvez ajouter votre clé privée pour le trousseau de clés à l'aide de la commande:
Si votre clé privée est stockée dans ~/.ssh et est nommé id_rsa:
Vous serez alors invité à entrer votre mot de passe, qui seront stockées dans votre trousseau de clés.
Modifier Poignée redémarrer
Afin de ne pas avoir à remplir votre mot de passe, même après un redémarrage, ajoutez les lignes suivantes à votre fichier de configuration de ssh (généralement situé dans ~/.ssh/config)
ssh-add ...
avec le même pass - le problème a disparu!~/.ssh
J'ai essayé toutes les réponses ici et aucune de ces réponses travaillé! Mon mot de passe ne serait pas persistent entre les sessions/redémarrage de mon Mac.
Ce que j'ai découvert à la lecture de cette OpenRadar et cette discussion Twitter était que Apple a volontairement modifié les comportements de ssh-agent dans macOS 10.12 Sierra de ne plus charger automatiquement le précédent des clés SSH. Afin de maintenir le même comportement que El Cap j'ai fait la suivante:
ssh-add -K ~/.ssh/id_rsa
Remarque: modifier le chemin d'accès de l'endroit où votre id_rsa clé se trouve.
ssh-add -A
Créer (ou modifier si il en existe un) la suite
~/.ssh/config
fichier:Et maintenant mon mot de passe est mémorisé entre chaque redémarrage de mon Mac!
ssh-add -A
n'est pas nécessaire si vous n'avez qu'une seule touche à~/.ssh/id_rsa
)Vous pouvez supprimer le mot de passe pour la clé
ou vous pouvez exécuter
vous obtenez une invite pour keyfile. Par défaut, il
~/.ssh/id_rsa
donc appuyez sur la touche enterVous serez invité à passer le courant phrase entrer.
Puis il y aura une invite de nouveau mot de passe, appuyez sur entrée
-K
,-k
,-A
ne fonctionne pas pour moi).Il suffit d'exécuter la commande suivante:
Il ne sera jamais à vous demander de saisir le mot de passe de nouveau.
ssh-add
juste ", ajoute la clé privée identités à l'agent d'authentification", et le-K
option tout simplement qui le rend si "Lors de l'ajout d'identités, chaque phrase de passe va également être stockées par l'utilisateur dans le trousseau".Assurez-vous d'utiliser ssh pour votre référentiel également
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v
origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch)
origin [email protected]:eMahtab/jenkins-cje-2017.git (push)
Ne pas utiliser le protocole https, si votre télécommande est à l'aide de https puis il va demander de mot de passe, même Si vous avez ajouté la clé publique à Github et ajout de la clé privée ssh-agent. Ci-dessous va toujours demander le mot de passe
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v
origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch)
origin https://github.com/eMahtab/jenkins-cje-2017.git (push)
git pull
etgit push
. J'ai changé mon url HTTPS type de SSH type, et cela a fonctionné--git pull
cessé de demander de mot de passe.git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Si vous utilisez windows, cela a fonctionné pour moi:
Il va demander de mot de passe dans la deuxième commande, et c'est tout.
Essayer
ssh-agent
comme il est expliqué là : https://help.github.com/articles/working-with-ssh-key-passphrasesJ'ai eu à exécuter:
Note: Vous devrez le faire à nouveau après chaque redémarrage.
Solution trouvée ici.
Cette Réponse a travaillé pour moi dans
Ubuntu
.Voir ce GitHub doc convertir à distance de l'URL à partir de https, ssh.
https://help.github.com/articles/changing-a-remote-s-url/
Pour vérifier à distance si l'URL est de type ssh ou https, utilisez
git remote -v
.Pour passer de https, ssh:
git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Pour Mac OSX Sierra, j'ai trouvé que les corrections suggérées dans le github problème pour Ouvrir un Radar fixe mon problème. Semble comme la Sierra modifié le comportement par défaut (j'ai commencé à avoir ce problème après la mise à niveau).
Ce que j'ai trouvé particulièrement utile:
https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061
Ce qui a entraîné mon identité soit ajouté à l'agent, après j'ai couru
Pour résumer, dans OSX.12:
devrait se traduire par:
EDIT:
J'ai remarqué que la prochaine fois que je fait un plein redémarrage (aka l'agent arrêté et redémarré), ce n'est plus travaillé. La solution plus complète est ce que @ChrisJF mentionnés ci-dessus: la création d'un
~/.ssh/config
fichier. Voici la sortie de la mine:Vous pouvez ajouter autant de
IdentityFile
d'entrées que vous avez besoin, mais c'est la configuration par défaut. C'est la "tendance" réponse sur la openradar lien ci-dessus, ATM, ainsi.J'avais déjà mis un mot de passe, mais pour quelque raison il ne reconnaissent plus. Donc, je viens d'ajouter le fichier d'identité à mon trousseau de nouveau à l'aide de
ssh-add -K
et il a cessé de demander mon mot de passe.Problème semble être parce que vous êtes le clonage à partir de HTTPS et pas SSH. J'ai essayé toutes les autres solutions ici, mais a encore l'expérience de problèmes. Cela n'a pour moi.
À l'aide de la
osxkeychain helper
comme suit:Savoir si vous l'avez installé.
git credential-osxkeychain
Si il n'est pas installé, vous serez invité à télécharger dans le cadre de Xcode Outils de Ligne de Commande.
Si il est installé, indiquer à Git d'utiliser
osxkeychain helper
en utilisant le globalcredential.helper
config:git config --global credential.helper osxkeychain
La prochaine fois que vous clonez une url HTTPS, vous serez invité à entrer le nom d'utilisateur/mot de passe, et de donner accès à la OSX trousseau de clés. Après cela la première fois, il doit être enregistré dans votre trousseau de clés et vous n'aurez pas à les entrer de nouveau.
Travaillé dans LinuxMint/Ubuntu
Faire les étapes suivantes
Étape 1:
Enregistrer les lignes ci-dessous dans le fichier
Étape 2:
Ouvrez le terminal et ajouter le jeu de clés à la ssh-add
fournir le mot de passe.
J'ai récemment mis à jour pour macOS désert de Mojave, et installé quelques outils via homebrew, qui semblait swap d'Apple version de
ssh-add
pour l'autre. Ma version par défaut dessh-add
n'a pas ont la-K
option. Cela a conduit à l'erreur suivante:# ssh-add: illegal option -- K
Vous pouvez voir la version de
ssh-add
que vous avez en cours d'exécutionwhich ssh-add
.(Le mien était stockée dans
/usr/local/bin/ssh-add
)Pour résoudre ce problème, j'ai dû le point clé de la pour Apple version:
Git/GitHub a parfaitement fonctionné par la suite. Pour plus d'informations, voir: Erreur: ssh-add: illegal option -- K
Je voudrais ajouter une réponse pour ceux qui peuvent encore avoir besoin pour entrer dans le
mot de passe parce qu'ils ont mis
IdentitiesOnly que oui. Cela peut entraîner par de multiples touches et le fichier d'identité, en cours de touches pour la commande git ou d'un serveur.
Après avoir généré la clé copié sur le serveur:
Je l'ai trouvé ne fonctionne pas.
Puis je suis allé vérifier la
~/.ssh/config
fichier, je l'ai vu à laen bas:
Puis-je ajouter au-dessus:
Je peux juste enregistrer en entrant
ssh 12gpu
.Ensuite, vous pouvez ajouter plusieurs clés ssh à l'aide de vos noms favoris, et vous
seulement besoin d'ajouter les paramètres comme ci-dessus quatre lignes pour la config
fichier.
Hôte est le nom que vous souhaitez entrer lorsque vous vous connectez au serveur
plus tard, la nom d'hôte est l'adresse ip du serveur ou de domaine comme github.com; Utilisateur est le nom d'utilisateur que vous vous connectez
dans le serveur comme le nom d'utilisateur ou git github ou gitlab; et la IdentityFile est le dossier où vous stockez les
la clé que vous avez généré.
Généralement, voici les étapes pour vous permettre de vous faire une connexion à distance à votre serveur via ssh sans mot de passe:
Créer une paire de rsa privée et la clé publique
Copier votre clé publique et de connexion à votre serveur distant
Ajouter votre clé publique .ssh/authorized_keys
Si vous avez plusieurs clés ssh à votre machine, vous pouvez ajouter votre clé à l'aide de la commande ssh-add
$ ssh-add /path/to/private/key
Puis essayez ssh à votre serveur
$ ssh username@your_ip_address
Source: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html
Si vous utilisez ssh url git, lorsque vous y êtes invité pour un mot de passe pour ssh mettre le nom d'utilisateur "git" et le mot de passe que votre système de mot de passe de connexion
Utilisation
ssh
distance url fournie par Github pashttps
.Si vous êtes à l'aide de Windows et GIT sans outils tiers et votre clé est pas sécurisé par un mot de passe utiliser ceci:
Ajouter votre git-hôte du serveur de la "config" fichier comme ceci:
Enregistrer le fichier et de cloner le dépôt comme ceci:
git clone ssh://myhostname.com/git-serveur/repos/picalc.git
Vous pouvez utiliser des paramètres de configuration supplémentaires pour la "config" fichier d'entrée de l'hôte. Ceux-ci peuvent être trouvés dans votre local git dossier d'installation, par exemple "C:\Program Files\Git\etc\ssh\ssh_config". Extrait:
Même problème pour moi et la solution était:
Voir ce github doc convertir à distance de l'URL à partir de https, ssh. Pour vérifier si la distance de l'URL est de type ssh ou https, utilisez git remote -v. Pour passer de https, ssh: git remote set-origine url [email protected]:USERNAME/REPOSITORY.git @jeeYem
Mobaxterme a une interface utilisateur il
setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]