Hosting con SSH y 10 comandos Unix, el mejor arma del webmaster, por daboblog

Pues si, hoy me toca dar un poco la paliza con SSH, como podéis leer en la link a la wikipedia, se trata de un modo más seguro que el Telnet tradicional para trabajar con archivos remótamente. Puedes usarlo en Mac, Linux, Unix o Windows, los tres primeros tienen incorporadas líneas de comandos y para Windows hay una utilidad que te permite ejecutar comandos Unix remotamente, putty.

¿Porqué SSH?

Se supone que hablo para quienes no lo conocen, es por ello que no me voy a poner en plan técnico sino que voy al grano.

SSH para que se me entienda es la manera bajo la cual van cifrados vuestros datos y el protocolo usado para conectaros a un host (o máquina) remota, la gran ventaja es que a través de este método, trabajaréis con una “Shell” “línea de comandos” o terminal remoto como si estuvierais en vuestro ordenador todo ello soportado por un protocolo que encripta los paquetes o datos que se envían de una máquina a otra.

Entiendo que vuestra web está alojada en un servidor en el que corre Unix, ahora mismo son la mayoría (sea bajo Linux, Mac Server o Un BSD “puro”) y no me voy a poner ahora a compararlo con un Windows Server (porque simplemente no hay comparación) y esto no son tópicos ni ganas de tocar las narices a Microsoft, se de lo que hablo.

Ojo que no es solo válido para quienes tienen una web, un ejemplo, imaginar que tenéis el ordenador encendido en casa (me da igual PC o MAC) y que queréis copiar o ver vuestros archivos remotos,o incluso controlar todo el sistema, pues esta sería la manera. Si ya se que con un Soft tipo el VNC o similar se puede hacer tambien pero la potencia de Unix en estos casos no tiene límite y es algo muy transparente y sencillo.

Pero vamos al grano, aqui va una cuestión para mis colegas Webmasters que no usan SSH o que su proveedor no lo ofrece, ¿Cuantas veces habéis pensado en qué? – “vaya faena”, si pudiese subir mi web al server en un ZIP me ahorarría la de dios de tiempo en lugar de archivo a archivo, gif a gif, página a página – porque todos sabemos que no nos dan la misma velocidad al “Download” que al “Upload”

Bien, es muy fácil con SSH, fijaros, no os voy a decir que dejéis de usar vuestro programa favorito de FTP o el mismo de Dreamweaver (que es malísimo por cierto y eso que en el 9 para Mac va algo más fino que el MX). Imaginar lo que supone en caso de problemas de una web el tiempo de respuesta, no os digo nada si es para un cliente.

Creo que es evidente este caso, la diferencia de subir un solo archivo de 10 Mb en zip a 50 Mb archivo a archivo, el ahorro de tiempo es enorme. En la parte II os explicaré como se trabaja con SSH y será un complemento al curso de Unix desde cero que voy a ir escribiendo pero os voy a poner unos ejemplos para daros cuenta del concepto antes de meterme en materia.

Has subido tus archivos en un zip (no hablo de tar.gz u otros porque quiero que se entienda a nivel básico) a tu carpeta pública en el servidor, llamémos a ese zip “web”, has ganado todo ese tiempo y ahora la carpeta “web.zip” está arriba, vale Dabo, yo la veo en “remoto” por mi cliente FTP pero…¿que hago con ella?

Que facil con Unix…estando en el directorio oportuno en tu servidor (ya hablaré de esto, es solo un ejemplo) escribes en la línea de comandos;

[dabo@libre3 ~]$ unzip web.zip (aquí pulsáis intro)

y Zas!, ya tienes tu web arriba descomprimida y en su sitio…el comando “unzip” lo hace posible.

Si haces un “ls” (comando de Unix para listar los directorios, similar al “dir” del DOS), lo verás ahí, por cierto, en todos los comandos Unix hay muchas opciones a ejecutar, para ver en el manual de Unix algo sobre un comando, por ejemplo “ls”, tipea; man ls >intro y verás todas las opciones de ese comando en cuestión pero eso ahora “no toca” XD.

[dabo@libre3 ~]$ ls (aquí pulsáis intro)

Otro ejemplo, Resulta que tenéis que actualizar un montón de archivos de vuestro foro o hacer cambios en ellos y hay alguno “critico”..

La solución “normal” pasa o bien por copiar los contenidos “arriba” (o duplicarlos) a través de vuestro cliente FTP o bajaros todo el mogollón de archivos a vuestra máquina en local para si hay algún problema subir los “buenos” (prefiero hablar así y que se me entienda :D)

Vale, Unix y SSH, estás en el directorio oportuno (o el anterior para que se me entienda) y tecleas; tar -cvf web.tar web

Modo más gráfico

[dabo@libre3 ~]$ tar -cvf web.tar web (aquí pulsáis intro)

Tendrás un archivo que sea “web.tar”, tu antiguo directorio o carpeta “web” está “empaquetada” y hala !, romper lo que queráis que si algo va mal en vuestra carpeta original “web” solo tenéis que teclear;

[dabo@libre3 ~]$ tar -xvf web.tar web (aquí pulsáis intro)

Y tendréis toda vuestra carpeta (directorio) “web” antes de los cambios allí arriba tan guapamente -:)

Lo de los “10 comandos Unix” es una manera de hablar pero no ando muy desacertado dado que de no usarlo a usar por ejemplo estos comandos; cp, mv, rm, ls, tar, gzip, more, get, put, o un editor de textos tipo vi, emacs, nano etc, vuestro trabajo y tiempo frente a la pantalla se reduciría drásticamente además de la seguridad adicional que os proporciona SSH, si, vale, seguro seguro solo es “quitar el cable” pero por decir algo, en una Red de Area local con tanto Sniffer rulando por ahí y tantas tarjetas de Red en modo promiscuo XD, el FTP a veces no es lo más aconsejable…

Todo esto no lleva más de 10 seg pero solo quiero llegar al punto de que comprendáis que con una línea de comandos Unix y una máquina remota, a través de SSH trabajaréis como si estuvieseis en vuestro terminal o en “local”. Como os digo, puede valer para Webmasters o para lo que se os ocurra…

De la misma forma que este método de conexión, SSH, es como un telnet “seguro”, la versión “segura” del FTP es el SFTP, un método muy potente y seguro de “subir” y “bajar” archivos (así se entiende, me vale lo mismo para transferir, mover etc) entre una máquina y otra mediante la capa de protección adicional que proporciona este protocolo a través del cual vuestros archivos y datos viajarán encriptados.

Unix no es complicado, es vuestro amigo -:)

Todo esto se complementará con el curso de Unix que voy a comenzar en breve, solo quería abriros el apetito XD. Por cierto, también tenéis que saber que voy a prepararos una guía de SSH aunque si os pica la curiosidad hay mucha información por ahí, yo quería más que meterme en materia explicaros con algún ejemplo el “porqué” de SSH más una línea de comandos Unix, sea en Mac, Linux o Windows.

Espero que a partir de hoy, a la hora de contratar un hosting para vuestra web, consideréis que el que tenga soportado SSH es una ventaja adicional (es que en mi caso es algo impensable el que no lo tenga)

También he de deciros que la administración de un servidor remoto se hace a través de SSH pero ya con la potencia de todos los comandos Unix disponibles y recuerdo, SSH es el método de conexión pero al final solo se trata de comandos Unix, da igual que los uses en tu máquina en local o a través de la red.

Está claro que hay otros métodos de conectarte remótamente a un servidor web, host remoto etc tipo interfaces gráficas como el Plesk, Virtuozzo etc. Esos programas no hacen más que llenar de porquería los logs (registros) de la máquina así como entorpecer y volverte loco “adivinando” por ejemplo hasta que punto controla el Apache, el servidor MysQL etc etc. Esa comodidad que te venden es falsa, puede servir en algún caso puntual pero…¿Podría un entorno gráfico de ese tipo llegar a controlar como a través de SSH y una PDA con Wi-fi un servidor Apache?

Ya os iré contando cosillas…

Puedes encontrar más información en daboblog.com

0 0 votos
Article Rating
Subscribe
Notify of
11 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
18 years ago

El artículo parece incompleto, no explican como copiar los archivos, sólo dan por encima una explicación de como comprimir y descomprimir archivos.
Para copiar un archivo por ssh basta con usar el comando scp archivo_origen usuario@host:/directorio_destino, y no hace falta que estén comprimidos, pueden subir carpetas enteras sin comprimir con scp -r directorio usuario@host:/directorio_destino, para bajarlos es lo mismo pero simplemente cambiando el orden del host remoto y el local scp -r usuario@host:/directorio_origen /destino. Para todo esto desde Mac OS X tienen Fugu que es simplemente un frontend para esta clase de comandos, pero si realmente quieren mantener una copia actualizada constantemente de un website contra un servidor en cualquier sistema operativo a mi entender es mejor usar rsync.

Anónimo
Anónimo
18 years ago

Hola amigo, soy Dabo, el autor del artículo, si releeas lo que he escrito arriba verás que pongo

“De la misma forma que este método de conexión, SSH, es como un telnet “seguro”, la versión “segura” del FTP es el SFTP, un método muy potente y seguro de “subir” y “bajar” archivos (así se entiende, me vale lo mismo para transferir, mover etc) entre una máquina y otra mediante la capa de protección adicional que proporciona este protocolo a través del cual vuestros archivos y datos viajarán encriptados.”

Y también;

“Todo esto se complementará con el curso de Unix que voy a comenzar en breve, solo quería abriros el apetito XD. Por cierto, también tenéis que saber que voy a prepararos una guía de SSH”

No es un tutorial de administración remota a través de SSH, es simplemente una introducción a lo que se puede hacer con SHH y va dirigido a ese usuario que nunca ha tocado una línea de comandos y lo que quería “pincelar” es el concepto general.

Efectivamente tienes razón en que rsync es la mejor opción pero no quería meterme ahora en esos temas, podía hablar de Subversion, My SQL server etc etc pero bastante se ve a veces el mundo de Unix como algo complicado como para meterme en algo así de entrada -:) y de nada sirve decirle a la gente “usa este comando” si no saben la base.

El fugu no va mal pero pero la verdad es que con una interfaz frontend no puedes hacer ni por asomo lo que a través de la línea de comandos, esta información se complementa con la que hay en mi blog en el hilo de este artículo.

http://www.daboblog.com/2006/01/25/hosting-con-ssh-y-10-comandos-unix-el-mejor-arma-del-webmaster/

Por mi parte solo comentar que cuando haga un tutorial SSH va a ir acompañado de un curso de Unix desde cero tal y como digo en el artículo.

Glendaibook, amigo, si lo vuelves a leer verás clara la intención del artículo, 😀

Para terminar solo decir algo que he repetido unas cuantas veces en el artículo, es una aproximación al mundo de Unix y las comunicaciones entre dos host, no quería hacer un texto “Super Geek” que no lo entienda nadie sino hacer pensar un poco a ese usuario que mantiene una web y que a uno de los servicios que quizás tiene y no usa, SSH, empiece a verlo de otro modo.

Saludos cordiales -:)

Dabo

Anónimo
Anónimo
18 years ago

Hola, creo que soy uno de esos usuarios de OS 9 que cuando llegó OS X, empezó a
ver su Mac como algo no tan amigable, al terminal le tengo pánico y todas estas
cosas me suenan a chino.Me viene bien este texto porque tengo la opción de ssh
en mi panel de la web, es un plesk y sale con una ventana negra ¿tengo la
opción de usar esto vía web?. Es de agradecer que los que saben intenten
escribir en un lenguaje inteligible para los que no tenemos ni papa nos
enteremos, me quedo con las ganas de más pero sobre todo con lo del curso de
unix desde nivel 0 (que en mi caso tendría que ser “bajo cero”)

Enhorabuena y gracias.

Anónimo
Anónimo
18 years ago

Hola, creo que soy uno de esos usuarios de OS 9 que cuando llegó OS X, empezó a
ver su Mac como algo no tan amigable, al terminal le tengo pánico y todas estas
cosas me suenan a chino.Me viene bien este texto porque tengo la opción de ssh
en mi panel de la web, es un plesk y sale con una ventana negra ¿tengo la
opción de usar esto vía web?. Es de agradecer que los que saben intenten
escribir en un lenguaje inteligible para los que no tenemos ni papa nos
enteremos, me quedo con las ganas de más pero sobre todo con lo del curso de
unix desde nivel 0 (que en mi caso tendría que ser “bajo cero”)

Enhorabuena y gracias.

Anónimo
Anónimo
18 years ago

Hola, creo que soy uno de esos usuarios de OS 9 que cuando llegó OS X, empezó a
ver su Mac como algo no tan amigable, al terminal le tengo pánico y todas estas
cosas me suenan a chino.Me viene bien este texto porque tengo la opción de ssh
en mi panel de la web, es un plesk y sale con una ventana negra ¿tengo la
opción de usar esto vía web?. Es de agradecer que los que saben intenten
escribir en un lenguaje inteligible para los que no tenemos ni papa nos
enteremos, me quedo con las ganas de más pero sobre todo con lo del curso de
unix desde nivel 0 (que en mi caso tendría que ser “bajo cero”)

Enhorabuena y gracias.

Anónimo
Anónimo
18 years ago

Hola, te voy a contestar pero ojo que es porqué lo preguntas por triplicado -:)

Ahora más en serio, lo que verás en tu panel Plesk me imagino que es un acceso a una línea de comandos remota (una Shell) que te creará el propio Plesk pero que no hará ni más ni menos que lo mismo que si te vas al terminal en tu Mac.

La verdad es que yo precisamente me vine a Mac por las X y todas las posibilidades que me ofrece su corazón Unix. Lo del curso nivel cero – “bajo cero” :D, pronto me pongo pero no te preocupes, como dije en otro sitio…Cuando empecé con esto de Unix pensaba que /etc era una preposición -:)

Saludos !

Anónimo
Anónimo
18 years ago

Un pequeño apunte.

Para conectarnos a un servidor via SSH abrimos la terminal y escribimos:
ssh usuario@servidor
o tambien (es lo mismo):
ssh servidor -l usuario

si nos conectamos por primera vez tendremos que aceptar la llave (key) de cifrado de ese servidor, esto sirve para encriptar nuestra conexion y para poder autentificar el servidor.
Tendremos que escribir:
yes

hay que tener cuidado como se usan los comandos y que comandos se utilizan, el tener acceso a un servidor via ssh permite muchas cosas y en ocasiones los administradores del servidor pueden pensar que se estan realizando ataques contra el sistema. Por este motivo no es muy comun este tipo de accesos.

Para activar en vuestro mac el acceso via ssh, hay que hacerlo en panel de preferencias, compartir y marcar la casilla de sesion remota. (recordar que todos los usuarios tienen que tener contraseña)

Anónimo
Anónimo
18 years ago

Hola Achilles, si te fijas en el enlace que lleva a la wikipedia al principio del texto;

http://es.wikipedia.org/wiki/SSH

Está documentado el comando o protocolo en si, incluso habla de las claves RSA yendo un poco más lejos que la propia autentificación “simple” etc etc. Solo entro por aquí para comentar que no estoy muy de acuerdo y te lo digo con toda la cordialidad con una parte de tu exposición y es esta

“hay que tener cuidado como se usan los comandos y que comandos se utilizan, el tener acceso a un servidor via ssh permite muchas cosas y en ocasiones los administradores del servidor pueden pensar que se estan realizando ataques contra el sistema. Por este motivo no es muy comun este tipo de accesos”

Creo que esta información no es acertada, puede llegar a confundir. Esta introducción al SSH viene porque un amigo mío hace días tuvo un problema con su servidor o ISP, la cosa no se podía arreglar de ninguna manera vía panel web (un Virtuozzo) y mediante SSH accedí a la máquina y rápidamente di con ello, el DR Web antivirus estaba consumiendo el 99% de recursos…Maté el proceso, hice unas comprobaciones etc etc y listo.

Creo que de cara a la integridad de los datos, por FTP puedes hacer el mismo daño a tu web que por SSH, si das click donde no debes…te lo cargas, si ejecutas lo que no has de ejecutar lo mismo pero si tienes acceso SSH lo tienes porque te lo han asignado, por ejemplo en lo que me metí el otro día, un Virtuozzo, no puedes “salir” de ese host virtual ni al núcleo de la máquina, con lo que el administrador sabe muy bien quien y de que modo se está ejecutando SSH, ni puedes compilar un Kernel ni hacer un apt-get por decir algo. El servicio está “capado” para la parte de tu máquina que ellos te reservan así como una cantidad de RAM , espacio en disco o CPU para que se entienda.

Pero en otro extremo, también conozco gente que administra servidores siempre en entornos front-end tipo Plesk y no saben ni lo que es SSH ni las ventajas que te proporciona. Creo que lo que comentas de “no es muy común este tipo de accesos” es porque la gente por desconocimiento, a veces no utiliza (nos pasa a todos) los recursos de los que dispone en su totalidad y vuelvo a repetir, nadie te da acceso como root a una máquina remota a no ser que realmente puedas entrar pero en la mayor parte de los casos entras por SSH al espacio que te han asignado, para eso están los grupos y permisos en Unix además de otras cosas.

Por la parte que me toca, no he pretendido que nadie lo use con este texto y mi opinión es que para usar SSH hay que saber Unix tal y como comento varias veces en el artículo.

Según mi criterio y vaya por delante que no me considero ningún pedagogo XD, el orden es;

Explicar los beneficios de SSH, después un curso de Unix desde cero y al final o entre medias un tutorial de SSH o coincidiendo con el desarrollo del “curso” para que interpreten los comandos con seguridad y claridad.

Efectivamente la manera de activarlo es como comenta Achilles (en Mac) -:)

Saludos !

Anónimo
Anónimo
18 years ago

Me mola, no conocia esta posibilidad, de momento voy a ponerme con esto, ya llegara tiempo despues para calentarme la cabeza con mas comandos y mas posibilidades, pero esto ya ahorra mucho.

Muchas gracias. 🙂

Anónimo
Anónimo
17 years ago

Eso que comentas sobre subir archivos comprimidos y descomprimir en el server es realmente fabuloso.

No te imaginas todo lo que he sufrido con mi mugre FTP.

Es más, para mejorar la velocidad de mi web lo que hice fue “cachear” el sitio en archivos estáticos, no sé si me explico, es para evitar acceder a cada rato a la base de datos.

Bueno, pues cuando quiero borrar todos los archivos que se han cacheado, mi FTP se tarda HORRORES porque borra uno por uno. Es desesperante.

Justo ahora estoy tratando de buscar un buen provedor de hosting con SSH, pero casi nadie lo ofrece, es un lío esta búsqueda. Ojalá pudieras recomendar qué hosting usas tú.

Gracias amigo, por recordarme lo importante que es usar SSH y no esta porquería de FTP_Cute.

Anónimo
Anónimo
17 years ago

Gracias a ti Ismael por comentarlo, es agradable saber que lo que es bueno para ti se hace extensible a los demás ;D

Un abrazo y

$; ssh olvidate@del_ftp -;) XD

11
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x