He clonado mi repositorio git sobre ssh. Entonces, cada vez que me comunico con el maestro de origen presionando o tirando, tengo que volver a ingresar mi contraseña. ¿Cómo puedo configurar git para que no necesite ingresar mi contraseña varias veces?
195
Respuestas:
Intenta
ssh-add
, debesssh-agent
estar ejecutando y manteniendo tu clave privada(Ok, respondiendo a la pregunta actualizada, primero se ejecuta
ssh-keygen
para generar una clave pública y privada como explicó Jefromi . Se pone la clave pública en el servidor. Debería usar una frase de contraseña, si no tiene el equivalente de un simple -Texto contraseña en su clave privada. Pero cuando lo haga, entonces necesita como cuestión práctica como se explica a continuación.)ssh-agent
Desea ejecutarse
ssh-agent
en segundo plano cuando inicie sesión. Una vez que inicie sesión, la idea es ejecutarssh-add
una vez y solo una vez, para darle al agente su frase de contraseña, para decodificar su clave. El agente simplemente se queda en la memoria con su llave desbloqueada y cargada, lista para usar cada vez que ssh en algún lugar.Todos los comandos ssh-family 1 consultarán al agente y podrán usar automáticamente su clave privada.
En los sistemas OSX (err, macOS ), GNOME y KDE,
ssh-agent
generalmente se inicia automáticamente para usted. Revisaré los detalles en caso de que, como yo, usted también tenga un entorno Cygwin u otro entorno de Windows donde esto ciertamente no se hace por usted.Haga clic aquí:
man ssh-agent
.Hay varias formas de ejecutar automáticamente el agente. Como explica la página del manual, puede ejecutarla para que sea un padre de todos los demás procesos de su sesión de inicio de sesión. De esa manera, las variables de entorno que proporciona estarán automáticamente en todos sus shells. Cuando (más tarde) invocas
ssh-add
ossh
ambos tendrán acceso al agente porque todos tienen las variables de entorno con nombres de ruta de socket mágicos o lo que sea.Alternativamente, puede ejecutar el agente como un hijo ordinario, guardar la configuración del entorno en un archivo y obtener ese archivo en cada shell cuando se inicie.
Mis sistemas OSX y Ubuntu realizan automáticamente la configuración de inicio del agente, por lo que todo lo que tengo que hacer es ejecutarlo
ssh-add
una vez. Intente ejecutarssh-add
y ver si funciona, si es así, solo necesita hacerlo una vez por reinicio.Mi sistema Cygwin necesitaba hacerlo manualmente, así que hice esto en mi
.profile
y tengo.bashrc
fuente.profile
:El
.agent
archivo es creado automáticamente por el script; contiene las definiciones de variables de entorno y exportaciones. Lo anterior intenta obtener el archivo .agent y luego intenta conps(1)
el agente. Si no funciona, inicia un agente y crea un nuevo archivo de agente. También puede simplemente ejecutarssh-add
y, si falla, iniciar un agente.1. E incluso local y remoto
sudo
con la extensión de pam correcta.fuente
ssh-agent
, probablemente sea máseval `ssh-agent`
Tuve un problema similar con el GitHub porque estaba usando el protocolo HTTPS. Para verificar qué protocolo estás usando solo ejecuta
y mira la línea que comienza con
remote.origin.url
. Para cambiar tu protocolofuente
Permission denied
error.git remote set-url origin [email protected]:your_username/your_project.git
Esto se trata de configurar ssh, no git. Si aún no lo ha hecho, debe usar
ssh-keygen
(con una frase de contraseña en blanco) para crear un par de claves. Luego, copie la clave pública en el destino remoto conssh-copy-id
. A menos que necesite múltiples claves (por ejemplo, una más segura con una frase de contraseña para otros fines) o tenga algunas cosas realmente raras de identidad múltiple, es así de simple:Editar: Realmente deberías leer la respuesta de DigitalRoss, pero: si usas claves con frases de contraseña, deberás usarlas
ssh-add <key-file>
para agregarlasssh-agent
(y obviamente comenzar yssh-agent
si tu distribución aún no tiene una para ti).fuente
ssh-agent
ya que quiere evitar el problema de ingresar la frase de contraseña cada vez. No voto negativo, pero creo que necesitas mejorar esta respuesta, a menos que sea yo quien no haya entendido bien ...ssh-agent
. +1 para ti!ssh-*
se necesita para usar la clave, ¿en qué se refería realmente a su contraseña de usuario real en el control remoto?Asegúrese de que cuando clonó el repositorio, lo hizo con la URL SSH y no con el HTTPS; en el cuadro de URL de clonación del repositorio, elija el protocolo SSH antes de copiar la URL. Ver imagen a continuación:
fuente
Si ha clonado con HTTPS (recomendado), entonces: -
y entonces
tiempo de espera = 2592000 (30 días en segundos) para habilitar el almacenamiento en caché durante 30 días (o las suites que desee).
Ahora ejecute un comando git simple que requiere su nombre de usuario y contraseña.
Ingrese sus credenciales una vez y ahora el almacenamiento en caché está habilitado durante 30 días.
Intente nuevamente con cualquier comando git y ahora no necesita ninguna credencial.
Para más información: - Almacenamiento en caché de su contraseña de GitHub en Git
Nota : Necesita Git 1.7.10 o posterior para usar el asistente de credenciales. Al reiniciar el sistema, es posible que debamos ingresar la contraseña nuevamente.
fuente
Extendiendo los pensamientos de Muein para aquellos que prefieren editar archivos directamente sobre la ejecución de comandos en git-bash o terminal.
Vaya al directorio .git de su proyecto (raíz del proyecto en su máquina local) y abra el archivo 'config'. Luego busque ["origen" remoto] y configure la configuración de url de la siguiente manera:
fuente
Creo que hay dos cosas diferentes aquí. La primera es que la autenticación SSH normal requiere que el usuario coloque la contraseña de la cuenta (donde la contraseña de la cuenta se autenticará con diferentes métodos, dependiendo de la configuración de sshd).
Puede evitar poner esa contraseña usando certificados. Con los certificados todavía tiene que poner una contraseña, pero esta vez es la contraseña de su clave privada (que es independiente de la contraseña de la cuenta).
Para hacer esto, puede seguir las instrucciones señaladas por steveth45:
Si quiere evitar poner la contraseña del certificado cada vez, puede usar ssh-agent, como lo señala DigitalRoss
El único problema de ssh-agent es que, al menos en * nix, debe colocar la contraseña de los certificados en cada nuevo shell. Y luego el certificado se "carga" y puede usarlo para autenticarse en un servidor ssh sin poner ningún tipo de contraseña. Pero esto está en ese caparazón particular.
Con keychain puede hacer lo mismo que ssh-agent pero "en todo el sistema". Una vez que enciende su computadora, abre un shell y coloca la contraseña del certificado. Y luego, cualquier otro shell usará ese certificado "cargado" y su contraseña nunca será solicitada nuevamente hasta que reinicie su PC.
Gnome tiene una aplicación similar, llamada Gnome Keyring que solicita la contraseña de su certificado la primera vez que la usa y luego la almacena de forma segura para que no se le vuelva a preguntar.
fuente
AddKeysToAgent yes
.ssh / config. Luego se carga en la memoria hasta que apaga la computadoraSi está utilizando github, tienen un tutorial muy agradable que lo explica más claramente (al menos para mí).
http://help.github.com/set-up-git-redirect/
fuente
Cuando se le solicite una frase de contraseña, déjela en blanco, es decir, simplemente presione Intro. ¡¡Tan sencillo como eso!!
fuente
Intente esto desde la caja desde la que está presionando
Entonces debería recibir una respuesta de bienvenida de github y estará bien para luego presionar.
fuente
Hi gkucmierz! You've successfully authenticated, but GitHub does not provide shell access.
Pero de alguna manera GIT todavía me pide la contraseña cuando intento de empujarTuve que clonar un repositorio git de un servidor que no permitía iniciar sesión con una clave ssh sino solo con un usuario / contraseña. No encontré ninguna forma de configurar el complemento de Git para usar una combinación simple de usuario / contraseña, así que agregué el siguiente comando de shell como paso previo a la compilación en una máquina de compilación de Linux que depende de la herramienta esperada (apt-get install wait):
¡ESTA NO ES UNA BUENA MANERA DE RESOLVER ESTE PROBLEMA COMO SU CONTRASEÑA SE MUESTRA COMO TEXTO CLARO EN LA CONFIGURACIÓN Y LOS REGISTROS DEL TRABAJO DE JENKINS! ÚNICAMENTE ÚSELO SI NO HAY FORMA DE CONFIGURAR LA AUTENTIFICACIÓN RSA-KEY U OTRAS POSIBILIDADES DE CONFIGURACIÓN.
fuente
Agregue una sola línea
AddKeysToAgent yes
en la parte superior del archivo .ssh / config. Por supuesto, ssh-agent debe estar ejecutándose de antemano. Si no se está ejecutando (verifique porprep ssh-agent
), simplemente ejecúteloeval $(ssh-agent)
Ahora, la clave se carga en todo el sistema en la memoria y no tiene que volver a escribir la frase de contraseña.
La fuente de la solución es /ubuntu/362280/enter-ssh-passphrase-once/853578#853578
fuente
He estado tratando de evitar escribir la frase de contraseña todo el tiempo también porque estoy usando ssh en Windows. Lo que hice fue modificar mi archivo .profile, para ingresar mi frase de contraseña en una sesión en particular. Entonces esta es la pieza de código:
así que con esto escribo mi frase de contraseña una vez en una sesión ...
fuente
Intenté todas estas sugerencias y más, solo para poder obtener clon de mi instancia de AWS. Nada funcionó. Finalmente hice trampa por desesperación: copié el contenido de id_rsa.pub en mi máquina local y lo agregué a ~ / .ssh / known_hosts en mi instancia de AWS.
fuente