Editar archivos remotamente en Sublime Text vía SSH

Soy bien amigo de nano para ediciones rápidas de archivos en el servidor, pero muchas veces me quedaba corto. En especial cuando las ediciones se volvían más complejas y tenías que saltar de una línea a otra. Se supone que este tipo de cambios y parches no se deberían realizar nunca en el servidor y menos en producción, pero soy sincero, muchas veces el tiempo apremia y lo hago (shame on me). También, hay otros casos en los cuales se editan archivos de configuración del servidor, que suelen ser de un largo considerable, y uno echa de menos trabajarlos sobre un editor que te haga la vida más fácil como Sublime Text.

Y bien, para estos casos encontré navegando (de forma desesperada) una solución que me cayó como anillo al dedo: rmate.

Lo que permite este pequeño script, que originalmente está escrito en Ruby, es crear un tunel SSH entre tu servidor y tu editor, pudiendo trabajar directamente en éste y enviar cualquier cambio realizado en el archivo de vuelta al servidor luego de guardar. Originalmente fue desarrollado para TextMate pero puede ser utilizado en SublimeText instalando un pequeño plugin. Entonces, los pasos son los siguientes:

  1. Instala en Sublime Text el plugin rsub desde el Package Control.
  2. En tu archivo de configuración SSH ~/.ssh/config debes agregar la opción RemoteForward:
    Host servidor
    Hostname 192.168.0.1
    User usuario
    RemoteForward 52698 127.0.0.1:52698
    

    Ahora, si deseas agregar la opción RemoteForward para todos tus hosts, puedes utilizar la siguiente configuración:

    Host *
    RemoteForward 52698 127.0.0.1:52698
    
  3. Ingresa vía SSH al servidor remoto donde deseas instalar rmate.
  4. Ahora descargamos rmate en la carpeta /usr/local/bin para que todos los usuarios del servidor tengan acceso a éste. De lo contrario, puedes descargarlo en ~/bin si sólo lo deseas para tu usuario.
    sudo curl https://raw.githubusercontent.com/aurora/rmate/master/rmate | sudo tee /usr/local/bin/rmate > /dev/null && sudo chmod +x /usr/local/bin/rmate
    
  5. Ahora sólo queda probarlo. Con Sublime Text abierto, ejecuta rmate seguido por el nombre del archivo que deseas editar:
    rmate mi-archivo.html
    

Si bien he probado bajo Windows con Cygwin (aquí como instalarlo), los pasos de configuración son los mismos para OS X y Linux.

Muchas quizás dirán que con el plugin SFTP para Sublime Text se puede hacer lo mismo, y es cierto, pero si quieres editar un archivo mediante sudo, debes conectarte como root, aquí basta con hacer sudo rmate archivo.html. Fuera de eso, lo encuentro mucho más ágil, no hay que configurar casi nada y hace justo lo que necesito, ni más, ni menos.

Anuncios

2 comments

  1. Vaya jodida genialidad. No veas la de tiempo que me voy a ahorrar editando la configuración de Apache con este método. Por seguridad no permito hacer login vía ssh con root, ni acceder vía FTP teniendo permisos de root (igual que el resto del mundo, vamos), así que la única opción era copiar los archivos a mi home, editarlos, y luego ejecutar “sudo cp” desde mi home al directorio en cuestión. Terrible, terrible.

    Me gusta

Deja un comentario (puedes utilizar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s