SGLMS

Editores (IDE) para multiples lenguajes: Vim y VSCode

A. SGLMS , 23/02/2023

Existen multiples editores para desarrollo, pero dos de los más populares (o al menos los más usados) son Visual Studio Code (VSCode) y Vim. La elección es tema de gustos y preferencias (existen además muchas otras opciones), y una comparación entre ellos no es completa sin considererar tipo de desarrollo, tipo de proyecto, lenguaje, preferencias, etc.

Ya están disponibles muchas comparaciones en línea: https://www.google.com/search?q=vim+vcode+compare; y no pretendo agregar una más. De hecho, ocupo ambos de manera indistinta, pero hay diferencias que si son notables (para nuestro estilo de trabajo) por estar cada uno de ellos (aparentemente) en extremos opuestos en términos de su «simplicidad» (con instalaciones por defecto).

Vim es más liviano y altamente configurable, lo que lo hace más útil para equipos con capacidades reducidas (incluso tablets o celulares; solo requiere de una terminal), y personalizable según preferencias. Esto viene con un precio, y es que requiere más esfuerzo (y lectura) para adecuarlo a tus necesidades y preferencias específicas. La instalación por defecto no ofrece más que un editor (que parece) muy limitado, pero con algunos plugins puede quedar ajustado a las necesidades más exigentes, sin importar el lenguaje, proyecto o estilo de desarrollo empleado.

VSCode naturalmente también permite la instalación de plugins y la personalización, sin embargo, está basado en ventanas (requiere de un entorno gráfico), y con frecuencia es el usuario el que termina adaptándose a como opera VSCode, y no al revés.

Vim, por un lado «se presenta» como un editor muy sencillo (demasiado, quizás); VSCode por otro lado «se presenta» lleno de opciones, ventanas y menús que por momentos (para los principiantes) hacen de este IDE algo abrumador o sobrecargado; y la adición de plugins solo exacerban esta percepción.

Al final del día, la elección entre estos (y otros) es cuestión de gustos, pero ambos son igualmente útiles entornos de edición (IDEs) para todo tipo de proyecto, y están disponibles en todas las plataformas y sistemas operativos. Más aún, es posible dejar Vim en «modo VSCode»; como también puedes configurar VSCode para operar en «modo Vim».

Elige tu propio «veneno» …


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.

Entradas recientes


Archivos