viernes, 29 de abril de 2016

Construcción de un CPU Clúster tipo Beowulf - Parte II

Clúster vista lateral
Clúster vista lateral

Instalación SSH Server


1. ¿Que es SSH ?
Es un protocolo de red criptográfico para iniciar sesiones basado en shell en maquinas remotas de manera segura. Esto permite al usuario ejecutar comandos en el símbolo del sistema de la máquina sin que ellos estén presentes físicamente cerca de la máquina.

También permite al usuario establecer un canal seguro sobre una red insegura en un cliente-servidor arquitectura, la conexión de un cliente SSH aplicación con un servidor SSH.

SSH se suele utilizar para iniciar sesión en una máquina remota y ejecutar comandos.

2. ¿Que es SSH server?
Es un programa de software que utiliza el protocolo SSH para aceptar conexiones desde equipos remotos. 
Comandos: SFTP/SCP transferencias de archivos y control remoto conexiones de los terminales son los casos de uso popular para un servidor SSH.

2.1. Instalamos SSH server:
$sudo apt-get install openssh-server 
Es un protocolo de red criptográfico para iniciar sesiones basado en shell en maquinas remotas de manera segura. Esto permite al usuario ejecutar comandos en el símbolo del sistema de la máquina sin que ellos estén presentes físicamente cerca de la máquina.

También permite al usuario establecer un canal seguro sobre una red insegura en un cliente-servidor arquitectura, la conexión de un cliente SSH aplicación con un servidor SSH .

SSH se suele utilizar para iniciar sesión en una máquina remota y ejecutar comandos sino que también apoya un túnel , reenvío de puertos TCP y X11 conexiones, se pueden transferir archivos utilizando el asociado de transferencia de archivos SSH (SFTP) o copia segura protocolos (SCP). SSH utiliza el modelo cliente-servidor.

En resumen, SSH es un protocolo utilizado para control remoto de otros equipos de la red y para transferencia cifrada de ficheros.
Public key: Encripta texto plano
Private key: Desencripta texto plano
SSH utiliza criptografía de llave publica para autenticar el equipo remoto y permitir que autorice al usuario entrante. Hay 2 maneras:
  1. La primera es que ambas partes usen llaves publicas-privadas generadas automáticamente y cifrar una conexión red y luego pedir contraseña de autenticación para iniciar sesión.
  2. Que se utiliza un par de llaves publicas generadas manualmente, permitiendo a usuario/programas iniciar sesión sin pedir llave.
La llave publica se coloca en todos los equipos que deben permitir acceso al titular de la llave privada. Es decir, que la persona que ofrece la PublicKey también posee PrivateKey.

Luego de instalar SSH, se deberá crear una clave del ordenador correspondiente:
$sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key         
$sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key        
$sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key 
2.2. Configurando SSH
Configuración:
man sshd_config 
Antes de tocar ese archivo haremos una copia de seguridad
$sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original 
$sudo chmod aw /etc/ssh/sshd_config.original                     
$sudo gedit /etc/ssh/sshd_config                                            
Tener sshd permita credenciales de acceso basados ​​en clave pública, simplemente añadir o modificar la línea:
PubkeyAuthentication yes 
Añadiremos la siguiente línea para permitir el acceso mediante SSH al usuario que tengas:
AllowUsers meow 
Si queremos permitir el acceso mediante SSH al superusuario root añadiremos (aunque esto no es recomendable por cuestiones de seguridad) la siguiente línea a este fichero:
PermitRootLogin yes 
Para indicar con qué interfaz de red se establecerá la conexión (en el caso de que tengamos varias interfaces de red con varias IPs en nuestro servidor de Linux Ubuntu) añadiremos la línea:
ListenAddress 192.168.1.254 
También podremos cambiar el puerto por defecto para SSH (es recomendable por seguridad), que es el 22, añadiendo (o modificando si existe) la línea:
Port 2222 
Ahora para hacer correctos los cambios :
$sudo /etc/init.d/ssh restart 
$sudo /etc/init.d/ssh start    
$sudo /etc/init.d/ssh stop      
3. Creación de SSH-KEY
Están ubicadas en :
$HOME /.ssh/identity 
aquí están las llaves privadas RSA cuando se usa el protocolo SSH versión 1
$HOME /.ssh/identity.pub 
contiene la clave pública RSA para la autenticación cuando se utiliza la versión del protocolo SSH 1.
 $HOME /.ssh/id_dsa 
aquí están las llaves privadas DSA cuando se usa el protocolo SSH versión 2. Contiene la clave pública DSA para la autenticación cuando se utiliza la versión del protocolo SSH 2.
$HOME /.ssh/id_dsa.pub 
$HOME /.ssh/id_rsa         
aquí están las llaves privadas RSA cuando se usa el protocolo SSH versión 2
$HOME /.ssh/id_rsa.pub 
contiene la clave pública RSA para la autenticación cuando se utiliza la versión del protocolo SSH 2. Ahora damos permisos a las siguientes carpetas para que puedan escribirse en procesos:
$sudo chmod 700 ~/.ssh                            
$sudo chmod 600 ~/.ssh/authorized_keys 
Para generar la conexión hacia otra PC llamada Pcexterna desde la nuestra llamada Pcnuestra haremos:  
En nuestra PC nos conectaremos a otras PC's con el comando ssh y la dirección IP a donde queremos ir. Pedirá contraseña de PCexterna para acceder.
$ssh PCexterna@ipexterno 
Para agregar a nuestra maquina(PCnuestra) llaves de otra maquina (Pcexterna). Añade la llave publica de nuestro origen(PCnuestra) a las del servidor destino(PCexterna)
$cat ~/.ssh/id_rsa.pub | ssh PCexterna@IPexterna "cat>>.ssh/authorized_keys" 
Y a la vez en la PCexterna, pedirá contraseña de PCnuestra para acceder, y listo.
$ssh PCnuestra@ipnuestra
Para agregar a la maquina(PCexterna) llaves de nuestra maquina (Pcnuestra). Añade la llave publica de nuestro origen(PCexterna) a las del servidor destino(PCnuestra):
$cat ~/.ssh/id_rsa.pub | ssh PCnuestra@IPnuestra "cat>>.ssh/authorized_keys" 
Y listo, ahora entre ambas PC's se podrán conectar sin necesidad de pedir contraseña (hacer esto SOLO con las PC's que quieras que accedan y a las cuales acceder, recuerda que si haces esto a un conjunto de PC's, todas podrán acceder a tu sistema sin filtro alguno).

Existe una manera de administrar todas las PC's de manera remota, sin necesidad de acceder a una por una, y esa manera se le atribuye a un software llamado clusterssh.

Ejemplo de una private Key: en /.ssh/ se almacenan id_rsa (privadas)
Ejemplo private Key
Ejemplo private Key
Ejemplo de una public key en /.ssh se almacenan en id_rsa.pub
Ejemplo de public key
Ejemplo de Public Key
Laboratory of Big Data & HPC/CTIC- UNI
Escuela Profesional de Ciencia de la Computación
Facultad de Ciencias
Universidad Nacional de Ingeniería


0 comentarios:

Publicar un comentario