¡Esta es una revisión vieja del documento!
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)
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:
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
Creamos el par de claves
student@ubuntu12:~$ cd .ssh student@ubuntu12:~$ ssh-keygen -t rsa -b 4096
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
Establecemos los permisos a las claves SSH
student@ubuntu12:~/.ssh ls -l student@ubuntu12:~/.ssh chmod 600 *
Quermos hacer mas seguro ela acceso a las claves
student@ubuntu12:~/.ssh ls -l student@ubuntu12:~/.ssh file id_rsa
id_rsa, es el fichero de la clave privada
student@ubuntu12:~/.ssh file id_rsa.pub
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
para ver que el openssh-serves está instalado
nos aseguramos que sshd está corriendo
[student@fedora14 ~]$ rpm -qa | grep "openssh-server"
si no esta instalado utilizamos el comando yum
yum update openssh-server yum install openssh-server
para ver si sshd esta corriendo
ps -eaf | grep sshd | grep -v grep | wc -l
UBUNTU PRACTICA 01 si sale 0 es que no se está ejecutando si sale 1 es que se está ejecutando, pincha en este enlace Pincha aqui si sale 1 ¿Por qué sshd no se está ejecutando aunque openssh-server se instaló previamente y ahora se actualiza?
ls -l /etc/rc5.d/* | grep ssh
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.
chkconfig --list | grep ssh
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. hkconfig 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.
find /etc/rc[0-9].d/* -name "S*sshd*"
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
service sshd start
Verificamos que está corriendo
ps -eaf | grep sshd | grep -v grep
mkdir -p .ssh ls -ld .ssh chmod 700 .ssh ls -ld .ssh
05 Creamos el fichero de autorizacion
cd .ssh touch authorized_keys 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. ls -l authorized_keys chmod 600 authorized_keys Le damos solo permisos al usuario ls -l authorized_keys
06
Volvemos al ubuntu
cd /home/student/.ssh/ scp id_rsa.pub student@192.168153.47:/home/student/.ssh/ Reemplazamos la ip por nuestra ip del Fedora cd /home/student/.ssh/ scp id_rsa.pub student@192.168.153.47: /home/student/.ssh/ Reemplazar la dirección IP obtenida de. Responda "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, su 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.
volvemos al fedora y añadimos el fichero id_rsa.com en el fichero de claves autorizadas
cd /home/student/.ssh/ ls -l cat id_rsa.pub >> authorized_keys cat authorized_keys
Testeando la conexion SSH ssh -i /home/student/.ssh/id_rsa student@192.168.153.47 hostname uptime who w exit
volvemos al ubuntu print de pantalla
ssh -i /home/student/.ssh/id_rsa student@192.168.1.107 “uptime” ssh -i /home/student/.ssh/id_rsa student@192.168.1.107 “uname -a” ssh -i /home/student/.ssh/id_rsa student@192.168.1.107 “echo \”tu nombre\“” 08