Configuracion de claves SSH en servidores. En particular: servidor web github
SSH: Secure SHell, es el nombre de un protocolo y programa de claves. Basado en Telnet, su configuración nos permite acceder de forma remota y mas segura a un servidor utilizando sistemas criptográficos para el cifrado de la información, tales como: RSA, DSA, ECDSA, EdDSA, Curvas elípticas.
- Copia datos de forma segura
- Gestiona claves con el tipo de cifrado elegido
El servidor envia clave pública, si coincide con la clave privada se abre un canal donde la información es encriptada
Es un tipo de cifrado que se utiliza para las claves públicas. Es la más utilizada por su seguridad y soporte. Su seguridad se basa en la dificultad matemática para factorizar grandes números semiprimos. Su soporte se basa en su antigüedad y estar distribuido en muchos sistemas.
Instalación de SSH por Bash
Se instala:
-
sudo apt-get install openssh-server
Se corrobora que esté en funcionamiento:
-
sudo systemctl enable ssh
- Creo las claves pública y privada. Me pide el nombre del archivo para guardar la llave, si presiono sólo "enter" el nombre del archivo queda por defecto: "id_rsa"
-
ssh-keygen
- Para reforzar la seguridad me pide una contraseña, en caso de omitirla sólo presiono "enter".
- Se repite la contraseña.
- Las llaves ya fueron creadas, la pública (id_rsa.pub) y la privada (id_rsa).
- Accedo a la carpeta .ssh y listo las llaves creadas.
-
cd .ssh
-
ls
- Con el comando cat abro y copio la llave pública
-
cat id_rsa.pub
- Ingreso a Github, en settings, en "SSH and GPG keys" y presiono en "New SSH key".
- Agrego un título a la llave haciendo referencia a la terminal que uso y pego la llave pública copiada anteriormente.
- Verificación de que la llave pública es agregada en Github.
- Se genera el agente que va almacenar la llave privada.
-
eval $(ssh-agent -s)
- Agrego la llave privada.
-
ssh-add ~/.ssh/id_rsa
- Creo un repositorio vacio en Github.
- Creo la carpeta pruebas, accedo a ella y creo un repositorio local.
-
mkdir pruebas
-
cd pruebas
-
git init
- Agrego el repositorio remoto al local.
-
git remote add origin git@github.com:url de repositorio remoto
- Creo un archivo de texto "archivotexto".
-
cat > archivotexto
- Hago un stage all y un commit, luego pusheo al remoto.
-
git add --all
-
git commit -m "primer commit"
-
git push origin master
- Se pueden ver los cambios del push realizado.