La creación de las SSH es necesario solo una vez por cada computadora. Aquí conocerás cómo conectar a GitHub usando SSH.
Luego de crear nuestras llaves SSH podemos entregarle la llave pública a GitHub para comunicarnos de forma segura y sin necesidad de escribir nuestro usuario y contraseña todo el tiempo.
Para esto debes entrar a la Configuración de Llaves SSH en GitHub, crear una nueva llave con el nombre que le quieras dar y el contenido de la llave pública de tu computadora.
Ahora podemos actualizar la URL que guardamos en nuestro repositorio remoto, solo que, en vez de guardar la URL con HTTPS, vamos a usar la URL con SSH:
Gran aporte el del post y excelente apuntes como siempre :D
Nose a quien le pueda servir pero cunado yo intente cambiar mi url de repositorio remoto no me dejo con el comando "git remote set-url origin" entonces investigue y encontré este "git config remote.origin.url + la url SSH" y si funciono perfecto
Espero que les sea de ayuda <3
¡Gracias! A mí me pasó lo mismo. ❤️
Gracias :*
Acá les dejo mis anotaciones:
Jejeje, gracias @Andresguerra747
Notas muy bien hechas saludos.
Comandos para copiar la llave SSH:Mac:
pbcopy < ~/.ssh/id_rsa.pub
Windows (Git Bash):
clip < ~/.ssh/id_rsa.pub
Linux (Ubuntu):
cat ~/.ssh/id_rsa.pub
buenisimo..
en el git bash también se puede utilizar cat para observar en contenido de los archivos en terminal
si se va cargar de git al github, recuerden que master cambio por main
<debes de poner:
git push origin master
se debe poner:git push origin master:main
>
Algo curioso es que antes estaba usando
git push origin master:main
pero ahora la rama principal de mi git cambio a (main) despues de conectar la llave SSH con github, ahora uso el comando
git push origin main
y funciona perfecto!
Excelente muchas gracias. De mucha ayuda
En Windows: si, al hacer git pull obtiene este warning: Warning: Permanently added the RSA host key for IP address ‘xxx.xx.xx.x’ to the list of known hosts. La solución es crear un archivo config en ~/.ssh/ y colocan esta línea: UserKnownHostsFile ~/.ssh/known_hosts
a mi también me paso eso, es increible que lleva 6 días esta pregunta y nadie la responde
Hola me gustaría saber como hacer eso que dices :) gracias!
Urge actualización de este curso!
definitivamente si, ya tiene como 6 años y muchas cosas han cambiado
Estar en la carpeta home de tu sistema. c/Users/Oscar Palomino
Teclear el comando ssh-keygen -t rsa -b 4096 -C "ing.oscarp1@gmail.com"
OJO! el correo que configures acá tiene que ser el mismo que el de Github.
Muestra lo siguiente.
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Oscar Palomino/.ssh/id_rsa):
Created directory '/c/Users/Oscar Palomino/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Oscar Palomino/.ssh/id_rsa.
Your public key has been saved in /c/Users/Oscar Palomino/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:TcKLjZGos8LAOuBV0WQclpxwT9+uKP9AvsF7cQPiASo ing.oscarp1@gmail.com
The key's randomart image is:
+---[RSA 4096]----+
| o**+. |
| .=Xo . . |
| ..+ +... . |
|. E.. = B .. |
|o.o.. o S.+ .. |
|* .o +....o |
|+o. . * .o . |
| o o =. |
| +o. |
+----[SHA256]-----+
El passphrase es una contraseña encima de la llave SSH.
id_rsa es la llave privada, con esta llave pueden hackear tu cuenta de github, NUNCA la enseñes.
id_rsa.pub es la llave pública, puedes enseñarla.
Evalúa que el proceso SSH esté corriendo con el siguiente comando:
eval $(ssh-agent -s)
Si muestra Agent pid "número aleatorio" significa que todo está bien.
Teclea el siguiente comando:
ssh-add ~/.ssh/id_rsa
Esto añadirá la llave, te pedirá la contraseña si la pusiste.
Mostrará lo siguiente:
Enter passphrase for /c/Users/Oscar Palomino/.ssh/id_rsa:
Identity added: /c/Users/Oscar Palomino/.ssh/id_rsa (ing.oscarp1@gmail.com)
Y listo, has creado una llave pública y privada.
CONEXIÓN A GITHUB CON SSH.
Copia tu llave pública y en tu perfil de Github ve a settings.
Ve a SSH and GPG keys.
Clic a New SSH key.
Le das un nombre en Title.
Pegas el contenido de la llave en el recuadro Key.
Guardas.
Ubicado en el repositorio que quieres trabajar, le das clic a Clone Repository y luego a USE SSH. Copias el contenido del recuadro y vas al entorno local (simbolo del sistema).
vas a la carpeta del repositorio local.
Tecleas git remote -v, verás el origin y la URL de este; el paso a seguir es cambiar la URL.
Usa de nuevo git remote -v, si ves que la URL cambió, lo hiciste perfectamente.
Trae el repositorio completo con GIT pull. Aparecerá una advertencia.
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
teclean yes.
Teclean git pull origin master, esto con el fin de fusionar el proyecto en github con el master local.
Usar git status.
Hacen un Commit.
Usan git pull origin master.
Luego git push origin master.
Revisan que los cambios se hayan realizado y listo! Configurada la llave SSH en Github. Y ya no pedirá más la contraseña.
Esta clase dura 8 minutos pero estuve mas de una hora practicandole y haciendole para que me salga :) estoy contenta porque ya aprendi como hacer cambios y subirlos a mi Git hub
Muy buenas notas. Solo para aclarar, el comando eval no ENCIENDE el servidor SSH, solo te informa si está corriendo.
WOW!!! Muchas gracias , no lo sabía.
Hola, amigos.
Si al momento en que ponen:
git push -u origin main
Les va a pedir su username y password, les sale un error, lo que tienen que hacer es generar un TOKEN, y en ves de poner su password, poner ese token que generaron.
Para generar el token, van a los ajustes de
GitHub / configuracion de desarrollador/ ficha de acceso personal / Yo use el clasico / Generar token
y el codigo que les de el token, lo copean en el password de la terminal y listo:)
Excelente aporte, pensé que algo me faltaba!
Gracias amigo, te hago una pregunta espero puedas ayudarme, cada vez que quiero hacer un push a origin, debo poner la clave del token clasico?
Les comparto la documentacion de Github donde tambien se explican estos pasos, asi de que en caso de que algo cambie, creo que esto se mantendria actualizado.
Hola, entiendo el proceso que se explica en el video, pero me tira siempre el mismo error cuando quiero tirar un pull o push por clave SSH
$ git pull origin master
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Leí los comentarios y trate de buscar soluciones pero ninguna fue efectiva.
A mí me pasaba lo mismo. En el vídeo él dice que hay que copiar en link de SSH para hacer la conexión con el repositorio. Yo intente copiando el HTTPS y me funcionó. ojalá te sirva:
git remote set-url origin linkHTTPS
Hola, yo lo resolví simplemente cambiando la palabra 'master' por 'main'
me encanta que freddy haga voces. mi vida es perfecta conecte Git con Github y ya esta corriendo SSH
Hay que practicar mucho!, esta bien que freddy es muy claro en su explicación pero esto no es solo de dar play.
Al minuto 6:05 donde hacemos el
$ git pull origin master
2 veces seguidas tuve que esperar unos cuantos segundos más de lo normal y me aparecieron estos errores:
ssh: connect to host github.com port 22:Connection timed out
fatal:Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
Si a alguien más le sucede le comento que la solución en mi caso fue solo esperar un par de minutos y volver a intentar. Espero que no se repita porque puede ser tedioso, pero al menos nada critico.
Hola yo tambien tenia el mismo problema. lo solucione. es por un problema de firewall donde le tenemos que desir que nos deje trabajar en en archivos ssh
Desde raiz usuario prueba esto:
$ vim ~/.ssh/config
Dentro añadir
Host github.comHostname ssh.github.comPort443
Guardas los cambios y ya vuelve a aplicar dentro de tu repositorio
$ git pull origin master
todo un hero gil
🐱💻 Usar GitHub con SSH nos permite conectarnos sin suministrar nuestro nombre de usuario ni contraseña en cada visita y clonar de forma segura.
$ git pull origin master
Enter passphrase for key '.ssh/id_rsa':
A la clave ssh se me ocurrio ponerle una clave y me la pide cada vez que quiero traer algo de Github, busque un poco y no he sido el unico jaja, asi que aprendi algo mas...
$ssh-keygen -p
confirmar
clave vieja
clave nueva(ninguna obviamente)
confirmar
Yo ya estaba pensando que había hecho algo mal, por que siempre me pide la clave. Gracias por el dato!
Gracias!
Es normal que me pida la contraseña de la llave ssh cada vez que hago un pull o push?
Si,es lo normal.
A mi nunca me la pide, se supone que el proceso está constantemente corriendo eval (ssh-agent -s)
Y nuestra llave ya debería estar guardada en una ruta que especificamos, además es nuestra maquina local, así que sería raro que la pidiera constantemente.