Idioma
Categoría
Buscar

Subir un nuevo proyecto a GitHub usando Linux y SSH sin contraseña

Inicia Git en la máquina local, cambia el nombre de lo branch por defecto, crea una clave SSH y agrega a GitHub, sube el proyecto y aprende a sincronizar el repositorio local con el remoto

En Terminal Por Rudi Drusian Lange
Publicado el
Última actualización

Antes de comenzar

Crea una cuenta en Github y agrega un nuevo repositorio. Esta parte es relativamente sencilla y el propio Github te ayuda en el proceso.

Entorno de instalación

En este artículo las configuraciones se realizaron utilizando Linux Slackware 15.0 y con las herramientas nativas Git versión 2.39.4 y OpenSSH 9.3p2. Los comandos utilizados en este material deberían funcionar en cualquier otra distribución de Linux con Git y SSH instalados.

Comenzando

Asumiendo un proyecto llamado telazul, primero iniciemos Git en este directorio:

Shell

# Acceder al directorio
cd telazul/  

# Iniciar Git
git init

# Agregar todos los archivos del directorio actual
git add .  

# Guardar permanentemente
git commit -m "Commit inicial: agregando archivos"

# Cambiar el nombre de lo branch principal de master a main
git branch -m master main 

Los comandos anteriores se utilizan para iniciar Git en el directorio del proyecto, agregar el árbol de archivos y guardar su estado actual con un mensaje informativo.

Estos pasos están diseñados para utilizar Git, independientemente de si el proyecto se utilizará en GitHub o no. Recuerda que Git funciona de forma distribuida, lo que significa que no necesitas un servidor central para usarlo, ni siquiera una conexión a Internet.

Al final cambiamos el nombre de lo branch local principal de master a main para mantener la compatibilidad con GitHub, que utiliza el nombre main para lo branch principal. Sin este cambio, al subir el proyecto se agregaría a un branch alternativo llamado master.

Configuración del acceso SSH a GitHub

El proyecto se transferirá mediante SSH, que es una forma segura y práctica de transferir archivos a través de Internet.

Vamos a crear las claves que se utilizarán como credenciales para iniciar sesión de forma segura en GitHub sin tener que introducir una contraseña.

# Crea las claves utilizando el algoritmo ed25519
ssh-keygen -t ed25519

Cuando se te solicite, presione para mantener la ubicación predeterminada de las claves y usar una contraseña en blanco. Si ya tienes claves creadas compatibles con GitHub, no necesitas crear una nueva.

Entre computadoras que usan Linux, la clave pública se puede transferir usando el comando ssh-copy-id. En GitHub debes copiar y pegar la clave en la interfaz gráfica de la plataforma. Copie el texto de la clave recién creada, recuerde usar el archivo que termina en .pub, que contiene la clave pública:

cat /home/tu-usuario/.ssh/id_ed25519.pub

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEDbDtQNhBvGd292FgKDRgqhiXGiLHo32ZYXCSS017d5 tu-usuario@nombre-del-host

Copie la línea que comienza con ssh-ed25519, acceda a GitHub, haga clic en el menú con su avatar , luego Settings > SSH and GPG Keys.

También puede utilizar el enlace directo: https://github.com/settings/keys.

Haga clic en New SSH Key, agregue un título al campo Title, pegue la clave pública en el campo Key y haga clic en Add SSH Key.

La configuración debería ser algo parecido a esto:

github-ssh-authentication-keys

Subir el proyecto a GitHub

El comando de abajo agrega el alias origin al repositorio remoto con el mismo contenido que el proyecto. Puedes crear múltiples repositorios remotos y origin es el nombre por defecto usado por Git.

git remote add origin git@github.com:tu-usuario/tu-repositorio.git

Recuerda ejecutar el comando anterior dentro de la carpeta de tu proyecto y cambiar los valores tu-usuario y tu-repositorio con tu información.

Por último, el siguiente paso es hacer una copia del proyecto en el repositorio remoto de GitHub:

git push -u -f origin main
  • u (o --set-upstream) establece origin como referencia. Esto te permite usar los comandos git push y git pull sin necesidad de informar al repositorio remoto.
  • f (o --force) sobrescribirá todo en el repositorio remoto, se utiliza cuando el comando se niega a completar la actualización.

¡Atención! Usar el parámetro -f borrará todos los archivos del repositorio de GitHub. Úsalo al iniciar un nuevo proyecto cuando el repositorio tenga archivos estándar como LICENSE y README y no acepte el comando push.

Actualización del proyecto

Ve al sitio GitHub y crea el archivo README con algún contenido. Para sincronizar estos cambios en el repositorio remoto con el local, ve a la carpeta del proyecto y ejecuta:

git pull

Como se mencionó anteriormente, al subir el proyecto con el comando git push utilizando el parámetro -u, se utilizará el repositorio en GitHub como referencia y no será necesario indicar el alias origin en el comando. La actualización se aplicará a lo branch local actual.

Compruebe que el archivo README creado remotamente está ahora presente en la carpeta local del proyecto. Edita el archivo en el repositorio local, agrega una nueva línea en README y luego:

git commit -a -m "update readme"

git push

El parámetro -a prepara automáticamente todos los archivos que han sido modificados o borrados, pero los archivos nuevos serán ignorados. Utilice git add para los archivos nuevos. El parámetro -m indica el mensaje de commit. git push actualiza el repositorio remoto en GitHub con los cambios recientes en la carpeta local del proyecto.

Fuentes

Este no es mi idioma original y no lo hablo muy bien. Utilicé mis pocos conocimientos y herramientas de traducción para redactar el texto de este artículo. Disculpe los posibles errores ortográficos o gramaticales, se agradecen sugerencias de correcciones y se pueden enviar al correo electrónico de contacto que se encuentra en el pie de página del sitio. Mi intención es compartir algunos conocimientos y espero que esta traducción sea lo suficientemente buena.