git - que - ssh llave publica
Git en Bitbucket: siempre me pidieron una contraseña, incluso después de subir mi clave pública SSH (8)
¿Estás seguro de que lo clonaste usando la url de ssh?
La URL de origen dice url = https://[email protected]/Nicolas_Raoul/therepo.git
así que si está usando https, pedirá una contraseña independientemente de sus claves ssh.
~/.ssh/id_rsa.pub
mi ~/.ssh/id_rsa.pub
en las claves SSH de Bitbucket como se explained , pero Git todavía me pide mi contraseña en cada operación (como git pull
). ¿Me he perdido algo?
Es un repositorio privado (fork del repositorio privado de otra persona) y lo cloné así:
git clone [email protected]:Nicolas_Raoul/therepo.git
Aquí está mi .git/config
local:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://[email protected]/Nicolas_Raoul/therepo.git
[branch "master"]
remote = origin
merge = refs/heads/master
En el mismo entorno con la misma clave pública, Git en Github funciona bien.
.ssh
es rwx------
, .ssh/id_rsa
es -rw-------
, .ssh/id_rsa.pub
es -rw-r--r--
Como se explica explained , si clona con la url de SSH , no necesita ingresar el nombre de usuario / contraseña cada vez que presiona / jala. Verifique la answer anterior por @manojlds
Pero si quiere clonar con HTTPS y quiere evitar ingresar el nombre de usuario / contraseña cada vez, puede almacenar las credenciales en la memoria caché con el siguiente comando:
git config --global credential.helper ''cache --timeout 3600''
donde 3600 (segundos) significa 1 hora, puede cambiarlo según sus necesidades.
En el caso de solicitud HTTP, también es posible y alternativamente pegar las credenciales (con contraseña) directamente en la url:
http://username:[email protected]/...
Esto ahorrará el dolor de dar tus credenciales cada vez más. Simple modifica tu .git / config (la url).
Es posible que deba verificar dos veces su archivo de identidades SSH. Puede estar guiando BitBucket para mirar una clave privada diferente / incorrecta a la clave pública equivalente que ha guardado en BitBucket.
Compruébelo con tail ~/.ssh/config
- verá algo similar a:
Host bitbucket.org
HostName bitbucket.org
IdentityFile ~/.ssh/personal-bitbucket-ssh-key
Recuerde que agregar identidades adicionales (como trabajo y hogar) se puede hacer con el comando ssh-add
, por ejemplo:
ssh-keygen -t rsa -C "companyName" -f "companyName"
ssh-add ~/.ssh/companyName
Una vez que haya confirmado qué clave privada se está buscando localmente, puede tomar su equivalente público, en este caso:
cat ~/.ssh/personal-bitbucket-ssh-key.pub | pbcopy
Y pegue ese cifrado en BitBucket. Tu git empujará ahora (siempre que estés usando el clon SSH como se indicó en las respuestas antes mencionadas) sin contraseña, ya que tu dispositivo es un amigable reconocido.
Espero que esto ayude a aclararlo para alguien.
Hola Googlers del futuro.
En MacOS> = High Sierra, la clave SSH ya no se guarda en KeyChain por razones .
El uso de ssh-add -K
ya no sobrevive también se reinicia.
Aquí hay 3 soluciones posibles .
He usado el primer método con éxito. ~/.ssh
un archivo llamado config en ~/.ssh
:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Lo siguiente asume el acceso de línea de comandos a través de iTerm / Terminal a bitbucket.
Para MacOS Sierra 10.12.5, mi sistema manifestó un problema equivalente, pidiendo mi frase de contraseña SSH en cada conexión a bitbucket.
El problema tiene que ver con las actualizaciones de OpenSSH en macOS 10.12.2, que se describen aquí en la Nota técnica TN2449 .
Es muy posible que desee adaptar su solución, pero lo siguiente funcionará cuando se agregue a su archivo ~ / .ssh / config:
Host *
UseKeychain yes
Para obtener más información sobre las configuraciones de ssh, eche un vistazo a las páginas man para ssh_config:
% man ssh_config
Otra cosa: aquí hay un buen informe sobre el superusuario que analiza este problema y varias soluciones según sus necesidades y configuración.
Su ya respondida arriba. Resumiré los pasos para verificar arriba.
ejecuta git remote -v
en el directorio del proyecto. Si el resultado muestra url remota que comienza con https://abc
entonces puede necesitar un nombre de usuario con contraseña cada vez.
Entonces, para cambiar la URL remota, ejecute git remote set-url origin {ssh remote url address starts with mostly [email protected]:}
.
Ahora ejecute git remote -v
para verificar la URL remota modificada.
Consulte: https://help.github.com/articles/changing-a-remote-s-url/
Paso 1: Instalar git-credential-winstore
https://confluence.atlassian.com/bitbucketserver/permanently-authenticating-with-git-repositories-776639846.htmlPaso 2: git config --global credential.helper ''cache --timeout 3600''
Esto almacenará su contraseña por 1 hora- Paso 3: Ejecute un comando git que le solicitará su contraseña y la credencial solicitará y almacenará su contraseña