Herramientas de usuario

Herramientas del sitio


sad:ubuntu:p9

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

sad:ubuntu:p9 [2018/01/10 19:05]
José Manuel Guallar
sad:ubuntu:p9 [2019/01/04 13:18]
Línea 1: Línea 1:
-====== ¿Qué es SSH? ====== 
- 
- 
-Secure Shell (SSH) es un protocolo de red para la comunicación de datos segura, servicios de shell remotos o ejecución de comandos y otros servicios de red seguros entre dos ordenadores conectadas a través de un canal seguro sobre una red insegura: un servidor y un cliente (ejecutando un servidor SSH y programas de cliente SSH, respectivamente) 
-  
-====== ¿Qué son las llaves SSH? ====== 
- 
- 
-En los sistemas tipo Unix, la lista de claves autorizadas se almacena en la carpeta de inicio del usuario que puede iniciar sesión de forma remota, en el archivo ~/​.ssh/​authorized_keys. Este archivo solo es respetado por ssh si no se puede escribir con nada aparte del propietario y la raíz. 
- 
-Cuando la clave pública está presente en un lado y la clave privada coincidente está presente en otro lado, ya no es necesario escribir la contraseña. 
- 
-La clave privada también se puede buscar en lugares estándar, pero su ruta completa también se puede especificar como una configuración de línea de comandos (el modificador -i para ssh). La utilidad ssh-keygen produce las claves pública y privada, siempre en pares. 
-    ​ 
-En esta practica, veremos cómo hacer lo siguiente: 
- 
-  * Crearemos una infraestructura clave SSH entre Ubuntu y Fedora. 
-  * Usaremos ssh-keygen para crear un par de claves privadas / públicas para el usuario estudiante en Ubunut. 
-  * Colocaremos la clave pública en el servidor de Fedora en el directorio apropiado para el usuario estudiante. 
-  * Utilizaremos la clave privada de Ubuntu para autenticar e iniciar sesión en el servidor de Fedora como estudiante sin una contraseña. 
-  * Utilizaremos la clave privada de Ubuntu para autenticar y ejecutar el comando contra el servidor de Fedora como estudiante sin una contraseña. 
- 
- 
-====== Creamos el directorio .ssh ====== 
- 
-<code bash> 
-student@ubuntu12:​~$ mkdir -p .ssh 
-student@ubuntu12:​~$ ls -ld .ssh 
-En mi caso el permiso es  775. 
-Esto es un problema porque no quiero en nadie tenga acceso en un futuro a mis llaves ssh (ssh keys) 
-student@ubuntu12:​~$ chmod 700 .ssh 
-Ahora solo el usuario puede leer, escribir y ejecutar en el directorio .ssh 
-student@ubuntu12:​~$ ls -ld .ssh 
-</​code>​ 
- 
-{{:​sad:​ubuntu:​p9:​01.png?​400|}} 
- 
-===== Creamos el par de claves ===== 
- 
- 
-<code bash> 
-student@ubuntu12:​~$ cd .ssh 
-student@ubuntu12:​~$ ssh-keygen -t rsa -b 4096 
-</​code>​ 
- 
-ssh-keygen es la instruccion que genera el par de claves publica y privada. 
- 
-"​-t"​ Especifica el modo de encriptación 
- 
-"​-b"​ Especifica la longitud de la clave, por defecto 2048 
-    ​ 
-pulsamos ​ <​Enter>​ 3 veces 
-    ​ 
-{{:​sad:​ubuntu:​p9:​02.png?​400|}} 
- 
-====== Establecemos los permisos a las claves SSH ====== 
- 
-<code bash> 
-student@ubuntu12:​~/​.ssh ls -l 
-student@ubuntu12:​~/​.ssh chmod 600 * 
-</​code>​ 
- 
-Quermos hacer mas seguro ela acceso a las claves 
- 
-<code bash> 
-student@ubuntu12:​~/​.ssh ls -l 
-student@ubuntu12:​~/​.ssh file id_rsa 
-</​code>​ 
- 
-id_rsa, es el fichero de la clave privada 
- 
-<code bash> 
-student@ubuntu12:​~/​.ssh file id_rsa.pub 
-</​code>​ 
- 
-id_rsa.pub, es la clave pública que se coloca en otros servidores para configurar SSH de forma segura. 
-            
- 
-vamos al **fedora** y ejecutamos ifconfig -a  
- 
-{{:​sad:​ubuntu:​p9:​04.png?​400|}} 
- 
-para ver que el openssh-serves está instalado 
- 
-nos aseguramos que sshd está corriendo 
- 
-<code bash> 
-[student@fedora14 ~]$ rpm -qa | grep "​openssh-server"​ 
-</​code>​ 
- 
-si no esta instalado utilizamos el comando yum 
- 
----- 
- 
- 
-<code bash> 
-[student@fedora14 ~]$ yum update openssh-server 
-[student@fedora14 ~]$ yum install openssh-server 
-</​code>​ 
-para ver si sshd esta corriendo 
- 
-<code bash> 
-[student@fedora14 ~]$ ps -eaf | grep sshd | grep -v grep | wc -l 
-</​code>​ 
-si sale 0 es que no se está ejecutando 
- 
-si sale 1 es que se está ejecutando, pincha en este enlace [[sad:​ubuntu:​p9#​creamos_el_directorio_ssh1|Pincha aqui si sale 1]] 
- 
-¿Por qué sshd no se está ejecutando aunque openssh-server se instaló previamente y ahora se actualiza? 
- 
-<code bash> 
-[student@fedora14 ~]$ ls -l /​etc/​rc5.d/​* | grep ssh 
-</​code>​ 
- 
-Nota: 
- 
-Estamos comprobando si hay un script de inicio en el nivel de ejecución 5 para sshd. Hay que recordar que run-level 5 es el modo gráfico multiusuario donde se montan los sistemas de archivos y la red está activa. 
- 
-El resultado nos muestra que solo hay un script kill, pero no un script de inicio. Todos los scripts que comienzan con una "​K"​ son scripts de eliminación,​ y todos los scripts que comienzan con una "​S"​ se consideran scripts de inicio. 
- 
-Por lo tanto, si no hay un script de inicio para sshd, eso explicaría por qué sshd no se está ejecutando. 
- 
-Usemos chkconfig para verificar que no haya un script de inicio para sshd. 
- 
-<code bash> 
-[student@fedora14 ~]$ chkconfig --list | grep ssh 
-</​code>​ 
- 
-chkconfig: actualizaciones y consultas de información de nivel de ejecución para los servicios del sistema. 
- 
-chkconfig tiene cinco funciones distintas: agregar nuevos servicios para administración,​ eliminar servicios de administración,​ enumerar la información de inicio actual para los servicios, cambiar la información de inicio de los servicios y verificar 
- 
-El estado de inicio de un servicio en particular. 
- 
-Los niveles de ejecución 0 a 6 no tienen un script de inicio para sshd. 
- 
-Para crear los scripts de inicio para sshd 
- 
-chkconfig sshd --level 2345 on 
-chkconfig --list | grep ssh 
- 
-Creamos los scripts de inicio SSHD para el nivel de ejecución 2, 3, 4 y 5. 
- 
-chkconfig ahora muestra que existe un script de inicio para los niveles de ejecución 2, 3, 4 y 5. 
- 
-Verificar que los scripts de inicio se hayan creado usando el comando find. 
- 
-<code bash> 
-[student@fedora14 ~]$ find /​etc/​rc[0-9].d/​* -name "​S*sshd*"​ 
-</​code>​ 
- 
-find /​etc/​rc[0-9].d/​*,​ Buscae archivos y directorios en /etc/, que empiezan por rc y necesita un numero despues del "​rc"​ y antes del "​.d"​. (por ejemplo, rd2.d). 
-          
-Los scripts de inicio SSHD comienzan con una "​S"​. 
- 
--name "​S*sshd*",​ significa búsqueda de cualquier cosa que comience con una "​S"​ y contenga sshd después de la "​S"​. 
- 
-Ahora ya podemos comenzar el servicio 
- 
-<code bash> 
-[student@fedora14 ~]$ service sshd start 
-</​code>​ 
- 
-Verificamos que está corriendo 
- 
-<code bash> 
-[student@fedora14 ~]$ ps -eaf | grep sshd | grep -v grep 
-</​code>​ 
- 
----- 
- 
- 
-====== Creamos el directorio .ssh ====== 
- 
-<code bash> 
-[student@fedora14 ~]$ mkdir -p .ssh 
-[student@fedora14 ~]$ ls -ld .ssh 
-[student@fedora14 ~]$ chmod 700 .ssh 
-[student@fedora14 ~]$  ls -ld .ssh 
-</​code>​ 
- 
-{{:​sad:​ubuntu:​p9:​05.png?​400|}} 
- 
-====== Creamos el fichero de autorizacion ====== 
- 
-<code bash> 
-[student@fedora14 ~]$ cd .ssh 
-[student@fedora14 ~]$ touch authorized_keys 
-</​code>​ 
- 
-El fichero de autorizacion de claves contiene todos las claves publicas de los servidores en los que estará autentificado el servidor fedorate into this Fedora server. 
- 
-<code bash> 
-[student@fedora14 ~]$ ls -l authorized_keys 
-[student@fedora14 ~]$ chmod 600 authorized_keys 
-</​code>​ 
- 
-Le damos solo permisos al usuario ​ 
- 
-<code bash> 
-[student@fedora14 ~]$ ls -l authorized_keys 
- 
-{{:​sad:​ubuntu:​p9:​06.png?​400|}} 
- 
-** Volvemos al ubuntu** 
- 
-<code bash> 
-student@ubuntu12:/​$ cd /​home/​student/​.ssh/​ 
-student@ubuntu12:/​$ scp id_rsa.pub student@192.168.153.48:​ /​home/​student/​.ssh/​ 
-</​code>​ 
- 
-Reemplazamos la ip por nuestra ip del Fedora 
- 
-Responder "​sí"​ 
- 
-La huella (fingerprint) RSA se agregará al archivo known_hosts del usuario. 
- 
-La huella de RSA se almacena en /​home/​student/​.ssh/​known_hosts 
- 
-Al iniciar las siguientes sesiones de ssh, el cliente ssh identificará el nombre de host y lo buscará en el archivo known_hosts para encontrar la clave de host ssh previamente registrada para el servidor remoto. 
- 
-{{:​sad:​ubuntu:​p9:​07.png?​400|}} ​   ​ 
- 
-volvemos al fedora y añadimos el fichero id_rsa.com en el fichero de claves autorizadas 
- 
-<code bash> 
-[student@fedora14 .ssh]$ cd /​home/​student/​.ssh/​ 
-[student@fedora14 .ssh]$ ls -l 
-[student@fedora14 .ssh]$ cat id_rsa.pub >> authorized_keys 
-[student@fedora14 .ssh]$ cat authorized_keys 
-</​code>​ 
- 
-{{:​sad:​ubuntu:​p9:​08.png?​400|}} 
-    ​ 
-====== Testeando la conexion SSH ====== 
- 
-<code bash> 
-student@ubuntu12:​~.ssh$ ssh -i /​home/​student/​.ssh/​id_rsa student@192.168.153.47 
- 
-[student@Fedora14 ~]$ hostname 
-[student@Fedora14 ~]$ uptime 
-[student@Fedora14 ~]$ who 
-[student@Fedora14 ~]$ w 
-[student@Fedora14 ~]$ exit 
-</​code>​ 
- 
- ​volvemos al ubuntu 
- 
-{{:​sad:​ubuntu:​p9:​09.png?​400|}} 
- 
-print final de pantalla 
- 
-<code bash> 
-student@ubuntu12:​~.ssh$ ssh -i /​home/​student/​.ssh/​id_rsa student@192.168.1.107 "​uptime"​ 
-student@ubuntu12:​~.ssh$ ssh -i /​home/​student/​.ssh/​id_rsa student@192.168.1.107 "uname -a" 
-student@ubuntu12:​~.ssh$ ssh -i /​home/​student/​.ssh/​id_rsa student@192.168.1.107 "echo \"tu nombre\""​ 
-</​code>​ 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
  
sad/ubuntu/p9.txt · Última modificación: 2019/01/04 13:18 (editor externo)