Configurar VPS con contraseña
Si estás utilizando una instancia VPS de Oracle Cloud sabrás que para acceder a la administración por una conexión ssh debes tener las llaves ssh cargadas en el VPS y en tu sistema local. Pero en este artículo te muestro cómo configurar el VPS con contraseña de acceso a una conexión ssh.
Índice de artículo
Configuración predefinida de instancias VPS en Oracle Cloud
Cuando se crea una instancia VPS en Oracle Cloud es necesario crear un par de llaves ssh o cargar la llave pública de un par de llaves creadas previamente en nuestro sistema local.
Esta técnica es la recomendada como buena práctica en la actualidad. De este modo disminuimos la posible brecha de seguridad frente a un monitoreo de comunicaciones que pueda mostrar a un atacante la contraseña que enviamos al conectar con un usuario y una contaseña. Esta técnica se la conoce como «man in the middle«.
Configurando el VPS con contraseña en una instancia con llaves ssh
Para poder habilitar el acceso con contraseña en una instancia VPS en funcionamiento y creada en modo predefinido, se debe reconfigurar el servicio SSH del VPS.
El archivo de configuración es /etc/ssh/sshd_config
y se debe canfogurar la opción PasswordAuthentication = yes
.
$ sudo vim /etc/ssh/sshd_config
... PasswordAuthentication no ...
Luego de guardar los cambios se debe reiniciar el servicio sshd como se muestra.
$ sudo systemctl restart sshd
Con los pasos anteriores ya está el servidor ssh del VPS en condiciones de aceptar contraseñas para el acceso de usuarios registrados.
El siguiente paso es otorgar una contraseña al usuario predefinido del VPS, en el caso Oracle Cloud el usuario ubuntu
corresponde al Sistema Operativo Ubuntu. Se deben ejecutar los siguientes pasos.
$ sudo -i # passwd ubuntu
Luego de generar la contraseña y confirmarla para el usuario ubuntu
ya es momento de probar si todo funciona. Para eso debemos realizar la conexión ssh con opciones extras que obliguen al servidor ssh del VPS a pedir contraseña. De lo contrario la conexión se realizará con las llaves ssh que se utilizan con normalidad.
$ ssh [email protected] -o PasswordAuthentication=yes -o PreferredAuthentications=password
Si accedes sin problemas, ya está todo funcionando y listo para que puedas acceder desde cualquier sistema con el usuario y la contraseña.
Creando una nueva instancia VPS con acceso por contraseña
Para crear una nueva instancia VPS para que utilice el acceso por contraseña únicamente, se debe generar una configuración adicional que modifica el archivos could-init
que es el responsable de la creación del servidor VPS en la nube de Oracle.
La creación de la instancia VPS es igual que en el modo predefinido, pero en este caso debemos acceder a las configuraciones avanzadas donde podremos ingresar la personalización necesaria.
Al final del formulario de creación del VPS se debe acceder a «Mostrar opciones avanzadas».
Luego seleccionar la opción de ingresar script.
En la caja de texto se debe ingresar en formato YAML el siguiente código.
#cloud-config users: - default - name: apuntesit gecos: Apuntes IT #salted pass - 123456 passwd: $6$PbqRLqHewuOayaDl$x2MUlVkt1huv3JyFfv02CuvARZJAFXQL8lZhcBHiLnD4kESaGGVCpwRAIrj26G.OrSwRB6t9smSKpDfRKo8dI0 groups: users, adm lock-passwd: False shell: /bin/bash sudo: ['ALL=(ALL) NOPASSWD:ALL'] ssh_pwauth: True chpasswd: expire: False
El código anterior está escrito en semántica YAML. Por esto es importante respetar la identación de cada línea y recordar que la identación corresponde a dos caracteres espacio y no una tabulación.
- En la sección
users
se declaran los usuarios que se van a generar en el VPS. El usuarios default corresponde al usuario predefinido por Oracle Cloud (ubuntu
). - La etiqueta
name
indica el nombre de usuario que vamos a utilizar para ingresar al sistema. - La etiqueta
passwd
indica el hash de la contaseña asignada al usuario declarado. En este caso la contraseña es 123456. Adelante se muestra el modo de generar este hash. - La etiqueta
groups
indica los grupos a los que pertenece este usuario, al menos debe pertenecer al grupo users y al grupo adm. - La etiqueta
sudo
indica los privilegios que tendrá este nuevo usuario. - La etiqueta
ssh_pwauth
en True indica que el VPS aceptará contraseñas para ingresar en una sesión ssh. - Por último, la etiqueta
expire
con valor False indica que la contraseña nunca caduca.
Generando el hash de contraseña
Para poder generar el hash de contraseña se puede utilizar el comando mkpasswd
. Pero existe un sitio web que genera este hash en modo sencillo.
Se debe acceder a la url https://www.mkpasswd.net/index.php y seleccionar las opciones que se muestran en la siguiente imagen.
Luego ingresar la contraseña y presionar el botón Hash para obtener el hash resultante y colocarlo en la configuración de cloud-init.
Accediendo al VPS por contraseña
Una vez creado el VPS ya es momento de ingresar con el usuario y la contraseña indicada en el archivo de configuración de cloud-init.
Una vez accedido al VPS es recomendable cambiar la contraseña del usuario utilizado.
También es necesario configurar una contraseña al usuario ubuntu
para poder utilizarlo como usuario administrativo ya que pertenece a otros grupos que posiblemente se necesite para la administración del VPS en la nube de Oracle.
Para otorgar la contraseña al usuario ubuntu
debes seguir estos pasos.
- Acceder como usuario
root
.$ sudo -i
- Crear la contraseña del usuario
ubuntu
# passwd ubuntu
- Luego de crear la contraseña ya estás en condiciones de salir de la conexión ssh actual y probar el acceso con el usuario
ubuntu
y la contraseña generada para ese usuario.
Conclusión
Como se mostró, básicamente en una instancia funcionando se debe reconfigurar el servicio sshd
para que pueda ser accedido con contraseña.
En el caso de una instancia nueva se debe generar un código de configuración para indicarle a cloud-init que se deben generar nuevos usuarios y configurar el acceso por contraseña en las conexiones ssh.
Como es costumbre en este blog, te dejo el video dedicado a este tema donde podrás ver todo el procedimiento y datos extras que no encontrarás en este artículo.
Si el artículo te fue de utilidad o conoces a alguien que le pueda ser útil, compartilo en todas tus redes sociales. Invitá a tus contactos a seguir este blog para que esta comunidad comparta conocimiento.
Trabajando desde el año 1990 en el mercado de la tecnología. Técnico en Electrónica. Administrador de Sistemas. Administrador de Redes. Técnico en telecomunicaciones. Técnico de plataforma satelital. Incursiono en el Software Libre desde mediados del 1997. Desde entonces utilicé varias distribuciones GNU/Linux comenzando con un RedHat 5.0
Formé parte del Core Team y miembro del grupo de desarrollo del Proyecto UTUTO.