llaves ssh

De Wikicima
Saltar a: navegación, buscar

Hay distintos tipos de encriptación, pero una de las más usadas está basada en pares de llaves una pública y la otra privada. La idea básica es que una persona da su llave pública al mundo y sólo con su par llave privada puede des-encriptar la información Wiki_pari_keys_ecnription

En las compus se utiliza el mismo sistema. La herramienta de terminal más común es la ssh (Secure Shell).

Esta herramienta puede ser utilizada para no tener que estar introduciendo el pasword de usuario cada vez que se entra en un clúster... . La idea es senzilla, se mete la llave pública de la compu personal, en la lista de 'llaves autorizadas' del clúster. NOTA: Si alguien entra en tu compu, accede libremente a todas las otras máquinas!!!

Pasos:

  1. Desde el terminal de tu compu, generar el par de llaves de encriptación (para evitar problemas dejamos sin passphrase):
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/anthony/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/anthony/.ssh/id_rsa.
Your public key has been saved in /home/anthony/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:pAOz41atUhCkOOqmstoIfywaIICA3xz5O7nxebF1QDs anthony@anthony
The key's randomart image is:
(...)
  1. Aparece un directorio nuevo en el $HOME
$ ls -lrt .ssh/
-rw-r--r-- 1 anthony anthony 3100 oct.  19 12:19 known_hosts
-rw-r--r-- 1 anthony anthony  397 nov.   2 16:09 id_rsa.pub
-rw------- 1 anthony anthony 1679 nov.   2 16:09 id_rsa
  • * id_rsa.pub: Es la llave pública
  • * id_rsa: Es la llave privada (fijarse que sólo el usuario puede leer el fichero)
  • * known_hosts: resgistro de las IPs de todas las máquinas que se ha accedido. Si el nombre de máquina no coincide con la IP de este fichero, da error y no se deja acceder a la máquina (por si alguien hackeó algo)
  1. Ahora queda introducir la llave pública en la máquina deseada. Cómo ejemplo hydra. Se abre otra terminal y:
$ ssh anthony.schapffer@hydra.cima.fcen.uba.ar
  1. Seguramente no hay llaves públicas/privadas generadas. Mejor hacerlo...
$ ssh-keygen
(...)
  1. En el directorio .ssh, editar/crear un fichero que se llame authorized_keys o authorized_keys2
$ vim .ssh/authorized_keys2
  1. Al final añadir exactamente (nunca abrir este fichero con Windows ya que introduce caracteres extraños!!!) el contenido en la otra terminal de la llave pública
$ vim .ssh/id_rsa.pub
  1. Ya estamos! Asegurarse que el fichero authorized_keys, sólo es leíble y modificable por el usuario!
$ ls .ssh/authorized_keys2
-rw------- 1 anthony.schrapffer cima 792  2 nov.  16:23 .ssh/authorized_keys2
  • Para cambiar los permisos
$ chmod u+rw .ssh/authorized_keys2
$ chmod g-rw .ssh/authorized_keys2
$ chmod a-rw .ssh/authorized_keys2
  1. Ahora des de la otra terminal, verificar que no pide la contraseña para entrar en hydra

Uso de alias

Se puede evitar también la necesidad de introducir todo el texto de usuario@servidor a la hora de entrar en el clúster. Para evitar eso se usan `alias'

  1. Desde el home de la máquina editar el fichero .bash_aliases y añadir (p.e. hydra)
       alias       hydra='ssh anthony.schrapffer@hydra.cima.fcen.uba.ar'
  1. Después mirar si en el .bashrc (script que se ejecuta cada vez que se abre una terminal) existe la línea:
source .bash_aliases
  1. Ahora para entrar en hydra, Anthony sólo tiene que:
$ hydra
Last login: Thu Nov  2 16:23:35 2017 from 157.92.36.110
[anthony.schrapffer@hydra ~]$ 
Herramientas personales