loading...

En producción laravel a vps y configurando dominio, sub dominios SSL Parte2. Conexión de usuario por ssh desactivar usuario root

afreddier profile image Alfredo Fernandez ・4 min read

Anterior parte 1
Si vamos al panel de digital ocean creado anteriormente podremos ver la dirección ip del droples copiamos, ahora en nuestra terminal ocupamos el usuario root que nos provee digital ocean con la dirección ip y la llave generada anteriormente de la siguiente manera.

ssh root@157.245.169.85 -i /home/alfredo/.ssh/laravelapp

Nos acceder al servidor remoto esto nos permite confirmar damos yes Ten en cuenta que ocupamos la llave que no tiene .put porque este es la llave privada que no debemos compartir. Ahora por razones de seguridad no se recomienda trabajar directamente con el usuario root por lo que crearemos un usuario, lo llamare miusuarioenubuntu

adduser miusuarioenubuntu

Este usuario se creó en el directorio /home para verlo ll /home/ (deluser y nombreusuario para eliminar dicho usuario) este usuario no tiene permisos vamos a darle permiso de sudo de modo que podamos ejecutar comandos de root anteponiendo sudo

adduser miusuarioenubuntu sudo

Para acceder con el nuevo usuario que creamos necesitamos generar llave ssh en nuestra maquina local generamos con ssh-keygen que lo voy a guardar en (/home/alfredo/.ssh/id_rsa): /home/alfredo/.ssh/blogaf una vez generado mostramos la llave cat ~/.ssh/blogaf.pub para despues copiar y pegar en nuestro servidor remoto a la que entramos como root y navegamos al directorio del usuario al que vamos a permitir acceder con ssh en este caso cd /home/miusuarioenubuntu ahí creamos una carpeta oculta mkdir .ssh dentro creamos un archivo touch authorized_keys en la que pegamos la llave publica guardamos y salimos del servidor remoto y intentamos iniciar sesion con dicho usuario

ssh miusuarioenubuntu@157.245.169.85 -i /home/alfredo/.ssh/blogaf

ahora podemos acceder con el usuario miusuarioenubuntu y root sin embargo es recomendable desactivar el usuario root por temas de seguridad, para esto entramos al servidor, si entraste con el usuario normal es necesario anteponer sudo sudo nano /etc/ssh/sshd_config en el archivo cambiamos la linea que dice PermitRootLogin yes ponemos a PermitRootLogin no despues de esto guardamos y recargamos el servicio para que surtan efectos de configuración de la siguiente manera sudo systemctl reload ssh.service y salimos del servidor, si intentamos conectarnos como root ya no nos debería permitir.

Adicional a esto tenemos dos inconvenientes

  1. El servidor se cierra cada 5 minutos cuando no hacemos ningún movimiento esto pasa casi en todos los proveedores del servicio
  2. Es un poco molesto cada que queremos acceder al servidor y poner el usuario la ip y cargar la llave Para esto navegamos en nuestra maquina local al directorio cd ~/.ssh donde creamos nuestra llave ssh dentro creamos un archivo con el nombre config nano config en el que escribimos el siguiente código
ServerAliveInterval 120

ServerAliveCountMax 3

Host carlos

     HostName 157.245.169.85

     User miusuarioenubuntu

     IdentityFile /home/alfredo/.ssh/blogaf

Guardamos y Salimos con esto las dos primeras lineas solucionan el primer problema y el resto el segundo. Ahora podríamos acceder de la siguiente manera ssh carlos donde Host hace referencia al nombre que sera ocupado para acceder al servidor, HostName a la dirección ip del servidor User al usuario que creamos dentro del servidor y IdentifyFile a la ubicación de la llave.

Configurando dominio y subdominio

Vamos al panel de digital ocean navegamos a la parte Networking ahi añadimos el dominio de la siguiente manera
Alt Text

Esto nos genera tres DNS con el dominio añadido
Alt Text

Ahora añadimos @ en HOSTNAME para indicar el dominio añadido y seleccionamos un servidor y TTL como se muestra
Alt Text

Con esto el dominio esta listo de aqui en adelante el servidor se encargara de procecar las peticiones, como ultimo paso vamos añadir 3 subdominios de la siguiente manera
Alt Text
Alt Text

Ten encuenta que el dominio principal en mi caso (alfredofernandez.me) lo tienes que tener registrado, pero el subdominio puedes poner cualquier nombre no es necesario el registro, una vez el registro es necesario apuntar a los dns de digital ocean, eso podemos ver en la parte inferior las que dice NS
Alt Text

Esos tres NS añadimos en nuestro proveedor de dominio en mi caso lo registré en namecheap, si registraste en otro proveedor de igual manera deberias tener la sesion para añadir dns, para hacerlo nos dirigimos a la parte domain en la sesión DNS seleccionamos Custom DNS y añadir los NAMESERVER como se muestra
Alt Text

Discussion

markdown guide