SGLMS

Category : Tips

Cómo conectarse de un servidor (*nix o Mac OSX) a otro, sin contraseña (Actualización)

A. SGLMS , 20/02/2023

Actualización:

Después de generar la llave (id_rsa y id_rsa.pub; descrito más abajo), también se le puede copiar al servidor remoto usando ssh-copy-id:

usuario@local:~>ssh-copy-id -i ~/.ssh/id_rsa.pub visitante@remoto
visitante@remoto´s password:
Now try logging into the machine, with "ssh 'visitante@remoto'", and check in:
.ssh/authorized_keys
to make sure we haven´t added extra keys that you weren´t expecting.

Esto agregará la llave al final de la lista de servidores autorizados (authorized_keys).

Importante: Si tienes más de una llave privada en tu equipo local, asegúrate de agregrar esta llave privada (id_rsa) a las identidades registadas en el equipo local:

$ ssh-add id_rsa

O si ocupas OSX, es mejor agregarlo al KeyChain:

$ ssh-add -K ~/.ssh/id_rsa

Si por algún motivo ssh-add no está funcionando lo más probable es que ssh-agent no esté activo. Para activarlo:

$ eval `ssh-agent -s`

Para obtener una lista de identidades (llaves) registradas:

$ ssh-add -l

Escenario:

Quieres ocupar OpenSSH para que un ‘usuario’ en el equipo ‘local’ pueda acceder como ‘visitante’ en el equipo ‘remoto’, sin tener que ingresar la contraseña de ‘visitante’ cada vez.

Procedimiento:

Primero en ‘local’, generamos un par de llaves de autentificación. IMPORTANTE: Dejar la contraseña (passphrase) en blanco.

usuario@local:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_rsa): 
Created directory '/home/usuario/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/usuario/.ssh/id_rsa.
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

Ahora, nos conectamos como ‘visitante’ usando ssh al equipo ‘remoto’ y creamos (si es que no existe) el directorio ~/.ssh.

usuario@local:~> ssh-keygen -t rsa
usuario@local:~> ssh visitante@remoto mkdir -p .ssh
visitante@remoto's password: 

Finalmente, agregamos la llave púbilca creada al archivo visitante@remoto:.ssh/authorized_keys, e ingresamos la contraseña de ‘visitante’ una última vez:

usuario@local:~> cat .ssh/id_rsa.pub | ssh visitante@remoto 'cat >> .ssh/authorized_keys'
visitante@remoto's password: 

Con versiones más modernas de OpenSSH, es necesario ocupar el archivo .ssh/authorized_keys2 y asegurarse que la carpeta y el archivo tengan los permisos apropiados:

usuario@local:~> cat .ssh/id_rsa.pub | ssh visitante@remoto 'cat >> .ssh/authorized_keys2'
visitante@remoto's password:

Y, ahora cambiamos los permisos

usuario@local:~> ssh visitante@remoto
visitante@remoto:~> chmod 700 .ssh
visitante@remoto:~> chmod 640 .ssh/authorized_keys2

Eso es todo! En adelante el ‘usuario’ podra conectarse como ‘visitante’ al equipo remoto sin ocupar una contraseña en cada oportunidad.

Webpack y mini-css-extract-plugin

A. SGLMS , 08/11/2022

Cada vez que trato de ocupar webpack con mini-css-extract-plugin (MiniCssExtractPlugin.Loader) y llamar algún archivo css, me encuentro con el mismo problema, por ejemplo (usando prismjs):

$ npm run build:prod
...
ERROR in ./node_modules/prismjs/themes/prism-tomorrow.css 7:10
Module parse failed: Unexpected token (7:10)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
...

No he investigado mucho al respecto, pero es más simple ocupar style-loader y todos los problemas se resuelven.

Como instalar WebDAV (Centos 7/8)

A. SGLMS , 02/11/2022

Hay mucha información sobre como instalar un servicio WeDav en Centos, pero la mayoría sólo funciona si quieren instalar el servicio WebDav y nada más.

Si quieres mantener tu servidor web y disponer además de un servicio WebDav, aquí está el camino:

# rpm -q centos-release
centos-release-7-7.1908.0.el7.centos.x86_64
# yum install epel-release httpd
# yum update -y
# httpd -M | grep dav
 dav_module (shared)
 dav_fs_module (shared)
 dav_lock_module (shared)

Creamos la carpeta que contendrá los archivos:

# mkdir /var/www/html/webdav
# chown -R apache:apache /var/www/html
# chmod -R 755 /var/www/html

Protege el acceso web con una contraseña:

# htpasswd -c /etc/httpd/.htpasswd username
New password: 
Re-type new password: 
Adding password for user username

También es recomendable cambiar los permisos de acceso:

# chown root:apache /etc/httpd/.htpasswd
# chmod 640 /etc/httpd/.htpasswd

Agrega un archivo de configuración para el servicio:

# vi /etc/httpd/conf.d/webdav.conf

Y, agregar lo siguiente:


 <IfModule mod_dav.c>
    LimitXMLRequestBody 131072
    Alias /webdav "/var/www/html/webdav"
    <Directory /var/www/html/webdav>
        Dav On
        Options +Indexes
        IndexOptions FancyIndexing
        AddDefaultCharset UTF-8
        AuthType Basic
        AuthName "WebDAV Server"
        AuthUserFile /etc/httpd/.htpasswd
        Require valid-user
        Order allow,deny
        Allow from all
    </Directory>
 </IfModule\>

Reiniciames el servidor apache:

# systemctl restart httpd

Y, eso es todo, ocupa un navegador e ingresa la dirección: http://xxx.xxx.xxx.xxx/webdav o puedes ocupar tu cliente dav preferido.

SFTP Usuario único (Centos 7/8)

A. SGLMS , 06/05/2022

Crear el usuario

$ sudo adduser --shell /bin/false sftpuser
$ sudo passwd sftpuser

Cear el directorio y cambiar los permisos de usuario.

$ sudo mkdir -p /var/sftp/files
$ sudo chown sftpuser:sftpuser /var/sftp/files
$ sudo chown root:root /var/sftp
$ sudo chmod 755 /var/sftp

Configurar SSH para SFTP

$ sudo vim /etc/ssh/sshd_config

Añadir lo siguiente

Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no

Reiniciar el Servicio SSH

$ sudo systemctl restart sshd.service

Probar la configuración

$ sftp sftpuser@sglms.com

Connecting to sftp.sglms.com ...
sftpuser@sglms.com's password:
sftp>

Entradas recientes


Archivos