ssh

Upload: fernando-iglesias

Post on 19-Jul-2015

86 views

Category:

Documents


0 download

TRANSCRIPT

Manual SSH: El dios de la administracin remotaY es que no se merece un titular peor. Has estado alguna vez en el trabajo o en casa de y has necesitado o te has acordado de un archivo que no tienes en ese momento pero s en tu ordenador? Existen los escritorios remotos, de hecho Ubuntu trae uno instalado por defecto, pero puede que no queramos hacer ms que mandarnos un archivo o hacer algo en el ordenador remoto. Para esto -y mucho ms- existe SSH, con un inmenso potencial. SSH son las siglas de Secure SHell. Lo que te ofrece es una consola en un ordenador remoto con los privilegios que tenga la cuenta con la que conectes. Es decir, si en tu PC tienes varias cuentas, puedes conectar desde otro ordenador al tuyo con cualquiera de esas cuentas y sus respectivos privilegios, como pudiera ser la cuenta root, la de tu administrador sudo o la de un usuario normal sin poder de administracin. Y todo esto con encriptacin de datos. En este tutorial os voy a mostrar algunas facetas de su uso, pero antes debis saber que tener el servidor de SSH corriendo es de cierto riesgo, ya que si no tocis la configuracin por defecto para aumentar la seguridad a un nivel ms que aceptable, puede ser un agujero para que alguien pueda entrar en vuestro sistema. Pero no os preocupis, si segus estos pasos es difcil que suceda, nunca imposible, pero s difcil. El manual es algo extenso debido a que he intentado hacer que resulte bastante completo y que, como llevo haciendo en el resto de tutoriales, quiero que sepis lo que estis haciendo, los porqus y lo que significa cada cambio que hacis. De esta forma tendris criterio propio para vuestras modificaciones personales.

InstalarEn vuestros repositorios ya tenis SSH dispuesto a instalar, as pues: $ sudo aptitude install ssh Una vez instalado se autoiniciar el demonio que ejecuta el servidor SSH y gestiona las solicitudes de login remoto.

Configuracin: Mayor seguridadComo deca antes no es muy inteligente usar SSH sin modificar el fichero de configuracin del servidor. Vamos a modificar algunas opciones para conseguir una seguridad aceptable. $ sudo gedit /etc/ssh/sshd_config (nota) Si algunas de las opciones que aqu comento no aparecen en vuestro sshd_config, simplemente agregadlas. Podis hacerlo donde queris, aunque lo suyo es que lo hagis al principio o al final para que sepis cuales son las opciones que vosotros habis agregado. Vemos un fichero de configuracin tpico basado en opcin valor. Vamos a comenzar las modificaciones por el puerto que es lo primero que vemos y una de las cosas ms importantes. SSH

usa por defecto el puerto 22. Esto significa que si no lo cambiamos estamos entregando a un caco que sabe la direccin de dnde vivimos (nuestra IP) tambin la llave del portal. Cambiaremos el puerto para evitarlo. Esto no quita que el caco pueda intentar averiguar el portal si sabe cmo hacerlo pero al menos le ponemos impedimentos. Tambin hay scripts que atacan directamente el puerto 22, por lo que el cambio de puerto es algo obligatorio. Poned el que queris y abridlo tambin en el router para que podis acceder a vuestro ordenador desde otro. Usaremos por ejemplo el 4321, podis poner el que queris. As pues en el fichero de configuracin: port 4321 Un poco ms abajo buscad la opcin Protocol debe estar a valor 2, si no es as (valor 1 2,1 ponedla. Hay dos versiones de protocolo SSH. La primera est ya en desuso y tiene varias vulnerabilidades. As debis dejarlo en vuestra configuracin: Protocol 2 Buscad la seccin Authentication. Sus dos primeras opciones son tambin importantes. La primera es el nmero de segundos que tendr el usuario remoto para hacer login en tu mquina. Poned ese valor a pocos segundos, no tardamos mucho en hacer login si sabemos la cuenta y la password. De esta forma evitamos ciertos scripts que se aprovechan de ese tiempo. El valor tpico en trminos de seguridad es 30, aunque podis poned incluso menos si estis ms conformes. LoginGraceTime 30 Justo debajo tenis otras de las opciones ms importantes, PermitRootLogin. Si antes us la metfora del caco y el portal, esta opcin viene a ser que le digis tambin en qu planta del bloque de pisos vivs y qu puerta, faltndole slo la llave. Con esto lo que insino es que si sabe por qu puerto entrar, tan slo le queda averiguar dos datos: el nombre de una cuenta y su contrasea. Si tenemos esta opcin habilitada (yes) el caco ya tiene la mitad del trabajo hecho, pues el usuario root existe en todas las mquinas GNU/Linux, tan slo le queda averiguar la contrasea. Por eso es ms que recomendable deshabilitar esta opcin. No os preocupis los que tenis en mente usar SSH para hacer un uso administrativo, podis hacerlo con vuestra cuenta y sudo sin problema alguno. As pues PermitRootLogin no Tambin podis sealar con el dedo las cuentas que tienen permitido el uso SSH (AllowUsers). Pongamos un ejemplo, que es como mejor se entienden las cosas: Supongamos que tienes un amigo con el que quieres compartir algo va SSH y adems tiene un hermano que es un enreda y en el que no confas por si te la puede liar. Llamaremos a las cuentas amigo y pesado respectivamente. Para restringir el uso de SSH a tu amigo y a tu propia cuenta (llammosla pepino) podemos indicrselo mediante configuracin. Incluso podemos indicar tambin que tu amigo slo se pueda conectar a tu ordenador desde el suyo, sabiendo su IP (supongamos que es 83.45.258.21). Pondramos en la configuracin: AllowUsers pepino [email protected]

De esta forma t podras usar tu cuenta (pepino) para conectar a tu equipo desde cualquier lugar, tu amigo podra hacerlo slo desde su ordenador (si tiene esa IP) y tu hermano no podra conectar a tu mquina va SSH, si no tiene tu cuenta. Otra opcin interesante es el nmero de intentos que tiene el usuario remoto para hacer login (MaxAuthTries). Como coment antes, quien intente conectar debe acordarse de su login y password, por lo que es tontera darle un nmero grande de intentos. En principio con dos son ms que suficientes. Si al segundo intento no lo ha conseguido se cortar la conexin SSH. Siempre se puede volver a conectar y reintentarlo, pero as nos quitamos de encima ciertos scripts que intentan encontrar el login por fuerza bruta a base de ensayo y error. MaxAuthTries 2 Por ltimo hay otra opcin que define el nmero mximo de usuarios conectados simultneamente a tu mquina. Esto ha de adaptarse a tus propias necesidades. Si estamos hablando de un ordenador personal donde slo vas a conectar t, pues lo lgico sera que como mucho hubiera una. Si estamos hablando de un ordenador que har las veces de servidor compartiendo una carpeta a varias mquinas, debers decidir cuntos son. Cuanto tengas claro el nmero indcalo en la opcin siguiente en lugar de la X: MaxStartups X Ya podis guardar y cerrar gedit. Con esto tenis un servidor SSH bastante seguro. Como coment antes nunca es 100% seguro pero a priori podis estar bien tranquilos. Slo resta reiniciar el propio servidor SSH para que tome los cambios que hemos efectuado en su configuracin. Escribid en consola: $ sudo /etc/init.d/ssh restart Un ltimo consejo. Como habis visto podemos poner trabas al caco en cuanto a nuestra direccin y puerta, pero podemos ponerle problemas con la llave? La llave se entiende que es la contrasea. Y la respuesta es afirmativa. Podis hacerlo pero vosotros mismos. Poned claves en condiciones a vuestras cuentas. Usad como poco 5 6 caracteres y a ser posible que se entremezclen maysculas, minsculas y nmeros, por ejemplo: entr3TuXeSyp3p1n0s. Es un ejemplo exagerado, enrevesado a la hora de escribir e incmodo para meterlo en sudo cada dos por tres, pero intentad que sea del estilo y procurad que no sea algo tan simple como vuestro nombre, el de vuestra mascota, vuestra fecha de nacimiento, grupo favorito, etc.

Uso de SSH en consolaConectar Ahora que tenemos SSH bien seguro es hora de que veais para qu sirve. Parto de que tenis dos equipos, el que tenis delante y al que queris conectar. Obviamente debis tener una cuenta en el segundo para poder entrar. La forma de conectar por defecto es la siguiente: $ ssh tu_cuenta@ip_del_ordenador_remoto

Esto sera si no hubiramos cambiado el puerto, ya que intentara conectar por el puerto 22 que es el puerto por defecto del cliente. Podis cambiarlo si queris para que conecte por defecto por el puerto que le digis en lugar del 22 editando el fichero /etc/ssh/ssh_config. Descomentis (si est comentada) la opcin Port y en lugar de 22 ponis el que queris. La otra opcin, que es lo ms normal, es simplemente indicarle en la lnea de conexin qu puerto ha de usar: $ ssh -p puerto tu_cuenta@ip_del_ordenador_remoto Para que lo veais ms claro os voy a poner un ejemplo. Mi porttil est en la ip 192.168.1.4 y el puerto SSH que tengo para el mismo es el 4884. La cuenta que voy a usar para conectarme es pepino, as que para conectar desde mi PC de sobremesa al portatil sera: $ ssh -p 4884 [email protected] Tras esto me pedir la contrasea: [email protected]'s password: La introducimos y tras un texto de bienvenida veremos que nuestro prompt ha cambiado a nombre_cuenta@nombre_manquina. Mi portatil se llama salamandra, as pues mi prompt es: pepino@salamandra:~$ A partir de este instante tu consola est controlando el equipo remoto. Estars en el home de tu cuenta en la mquina remota. Qu podemos hacer?

Copiar ficheros Seguramente es lo primero que se os ha pasado por la cabeza a algunos. Efectivamente podemos copiar ficheros fcilmente desde el ordenador remoto al que estamos usando en este momento, y es fcil (es una sla lnea): $ scp cuenta_en_ordenador_presente@ip_ordenador_presente:ruta/fichero ruta/archivo

Complicado a priori, verdad? En el fondo no lo es, una vez sabis qu es cada cosa. ruta/fichero es el lugar donde est el archivo a copiar en la primera aparicin, y el lugar donde se va a copiar en la segunda. cuenta_en_ordenador_presente es la cuenta que estis usando (u otra) en el ordenador que tenis delante (no el remoto). La ip_ordenador_presente es precisamente la ip de vuestro ordenador. Pero como siempre mejor con un ejemplo. Supongamos que quiero copiarme un fichero llamado pepino.jpg que est en el escritorio de la cuenta pepino del porttil (el ordenador remoto) y quiero copirmelo en el home de la cuenta tux de mi ordenador presente, cuya ip es 192.168.1.6. Ya que estoy quiero aprovechar y cambiarle el nombre. Quiero que se llame pepinaceo.jpg en lugar de pepino.jpg. Escribiremos en el SSH (es una sla lnea): $ scp /home/pepino/Desktop/pepino.jpg [email protected]:/home/tux/pepinaceo.jpg

No funciona? Sabes por qu? El puerto, recordad que lo cambiamos y aqu tambin tenemos que indicrselo. En el ordenador de sobremesa tengo abierto el puerto 8448, as pues (es una sla lnea): $ scp -P 8448 [email protected]:/home/tux/pepinaceo.jpg /home/pepino/Desktop/pepino.jpg

Nos pedir la contrasea de la cuenta tux en el ordenador que tenemos delante y copiar el archivo: [email protected]'s pepinaceo.png 100% 292KB 291.7KB/s 00:00 password:

Y si ya estuvieramos en el escritorio (prompt: pepino@salamandra:~/Desktop$) no habra que poner toda la ruta si no queremos ya que tomara la ruta relativa a la actual: $ scp -P 8448 pepino.jpg [email protected]:/home/tux/pepinaceo.jpg (Nota) Ojo con la P que en este caso debe ser mayscula. Otra gracia del asunto es que no tienes por qu copiarlo a tu equipo actual. Si tienes acceso a otro ordenador ms, puedes copiar algo de uno al otro del mismo modo, es decir, teniendo login en ambos y sabiendo su IP. Por otro lado si lo que queremos copiar es una carpeta, basta con aadirle el parmetro -r para que copie todo su contenido (r=recursivo).

Otros usos Bsicamente cualquiera que se os pase por la cabeza. Daros cuenta que para un sistema GNU/Linux el interfaz no lo es todo, de hecho es prcticamente una aplicacin que est corriendo bajo el propio sistema operativo, por lo que podis administrar perfectamente vuestro equipo desde una consola y con acceso remoto va SSH. Dentro de una conexin SSH, podis reiniciarlo: pepino@salamandra:~$ Broadcast message (/dev/pts/1) at The system is going down for reboot NOW! O apagarlo: pepino@salamandra:~$ Broadcast message (/dev/pts/1) at The system is going down for halt NOW! sudo from 23:51 halt pepino@salamandra ... sudo from 23:45 reboot pepino@salamandra ...

O usar cualquier otra aplicacin de texto, como podra ser una que os present hace poco y que os podra venir muy bien en este caso: links. De esta forma si queris podes navegar en la consola y descargaros algo en vuestra mquina estando en otra. El abanico de posibilidades es realmente inmenso.

SSH en NautilusLo cierto es que si lo que queremos es simplemente copiar archivos o ver el contenido de alguno de ellos que estn en otra mquina, podemos usar nautilus que siempre ser ms amigable para algunos que a travs de consola. No hay mucho cambio al respecto. Alt+F2 y escribid dentro nautilus. Se os abrir el navegador de archivos. Nautilus tiene dos formas de mostrarte dnde ests dentro de la jerarqua de directorios. Una es a travs de botones donde cada carpeta es un botn que puedes pulsar para volver atrs:

Y otra que te indica la ruta en modo texto:

Para cambiar de un modo al otro pinchad en el icono que est a la izquierda del todo que es un folio escrito y un lpiz. Nos quedaremos en el segundo modo y en la caja de texto de Lugar: escribiremos la orden de conexin: ssh://tu_cuenta@ip_pc_remoto Siguiendo con los ejemplos anteriores: ssh://[email protected] Esto sera si el puerto es el que est por defecto, como nosotros lo cambiamos tenemos que indicrselo con :puerto tras la ip. En nuestro ejemplo: ssh://[email protected]:4884 Ahora nos pedir la contrasea de la cuenta. Tenomos estas tres opciones:

Tomad la decisin que queris. Personalmente yo soy de los prefieren tomarse la molestia de introducir la clave en cuestiones tan importantes como es la seguridad de SSH. Tras esto nos colocar en la raz de la mquina remota. Si lo que queramos era que nos dejara en una carpeta determinada se lo podemos indicar en la lnea de conexin. Por ejemplo en el escritorio de nuestra cuenta: ssh://[email protected]:4884/home/pepino/Desktop/ Ahora podis copiar archivos y carpetas con total comodidad desde vuestro escritorio GNOME.

Ejecutar aplicaciones grficas remotamenteOtra cosa muy prctica que podemos hacer gracias a SSH es ejecutar una aplicacin que no tenemos en el equipo actual pero s en el remoto y trabajar all. Es decir, puedes mirarlo como un servidor de trabajo grfico. Si an no queda claro os pongo otro ejemplo: Mientras estbais fuera de casa el pesado de tu hermano se ha hecho con tu ordenador porque tiene que hacer algo y si no se lo dice a mam. Sin embargo t tambin tienes cosas que hacer en l. No hay problema. Te pones en el equipo de tu hermano y abres la aplicacin que necesites de tu propio ordenador en el PC de tu hermano. Prctico, verdad? Pues es muy sencillo, basta con aadir un argumento ms (-X) y el nombre de la aplicacin que queremos usar. Por ejemplo imaginemos que queremos jugar a Doom en DOSBox, y en el ordenador de tu hermano no tenemos ninguna de las dos cosas. Podemos instalar DOSBox, copiar la carpeta de Doom, montarla y jugar. O tambin podemos ejecutar directamente DOSBox remotamente y montar el juego que ya tenemos en nuestro equipo: $ ssh -X -p 4884 [email protected] dosbox Ahora tan slo resta montar la carpeta como ya os mostr. Podis introducir la ruta de vuestro PC pues en el fondo es en vuestro PC donde se est ejecutando todo.

Cambiar el mensaje de bienvenidaYa saliendo de la parte prctica, he querido hacer esta pequea seccin dentro del manual para los fanticos de la personalizacin como yo. Si recordis cuando os expliqu la conexin por consola, os coment que tras introducir la clave nos daba una especie de texto de bienvenida. Este texto de bienvenida es modificable y puedes poner lo que quieras. Este es el de mi equipo de sobremesa:

Para hacerlo es simple. Tienes que editar (con privilegios de administrador) el archivo /var/run/motd y escribir dentro lo que quieras que aparezca cuando alguien se conecte. Es decir: $ sudo gedit /var/run/motd Lo modificamos a nuestro gusto, guardamos y cerramos gedit.

Artculos complementarios SSHFS: Trabaja con/en una carpeta remota como si fuera local gFTP te permite copiar archivos a otro ordenador fcilmente usando SSH Si te gusta juguetear con SSH, screen te puede interesar Administracin remota grfica: Vino Administracin remota grfica: FreeNX Espero que despus de todo el ladrillo os haya resultado prctico e interesante, pues sin duda SSH lo es.

Conocas SSHFS?Hace unos das os prepar un tutorial bastante completo sobre el poderoso SSH y os anunci que a lo largo de la semana os presentara un par de utilidades complementarias muy prcticas. SSHFS es una de ellas. Gracias a esta aplicacin podris tener una carpeta en un PC remoto y trabajar con/en ella como si fuera local, con transparencia total y la seguridad que ofrece SSH al estar usndose por debajo. Como siempre en esta seccin est al alcance de tu aptitude/apt-get: $ sudo aptitude install sshfs SSHFS necesita el mdulo fuse para poder funcionar, por lo que tendris que ejecutarlo siempre. Para que no lo tengis que hacer a mano y lo cargue el sistema automticamente (y para comprobar si ya lo cargis o no), abrid el fichero /etc/modules y comprobad si est: $ sudo gedit /etc/modules Si est, no tenis que hacer nada ms, cerrad gedit. Los que no lo tengis simplemente agregad fuse al final del fichero por ejemplo, guardis y cerris gedit. Los que lo hayis metido ahora tenis dos opciones para cargar fuse, reiniciar y que se cargue automticamente mediante el archivo modules o cargarlo manualmente hasta que reiniciis. Supongo que prefers la segunda opcin: $ sudo modprobe fuse Hecho esto el ltimo requerimiento que necesitamos es tener el servidor SSH funcionando. Los que no lo tengis podis seguir este manual para hacerlo y enteraros de qu es y para qu sirve. En cuanto a configuracin tan slo tenis que agregar vuestra cuenta al grupo que tiene acceso a fuse: $ sudo usermod -G fuse -a tu_cuenta Os aconsejo que ahora reiniciis el entorno grfico (Ctrl+Alt+Backspace) para tener la certeza de que se aplique vuestra adiccin al agregado grupo, en caso contrario es muy probable que os d un error de permisos si segus adelante. En el fondo ya est todo. Tenis todo listo para montar la carpeta remota en vuestra carpeta local. Vamos a probarlo. Cread una carpeta donde queris. Para que os sirva de ejemplo voy a crear la carpeta pepino en /home/ceec/. Tan slo tenees que cambiar ceec por vuestra cuenta en los siguientes pasos. $ mkdir /home/ceec/pepino La carpeta pepino va a ser el punto de montaje de la carpeta remota. Es decir, cuando acceda a pepino voy a acceder a la carpeta del otro ordenador. En principio para montarla tan slo tenis que hacer esto:

$ sshfs [email protected]:/home/ceec /home/ceec/pepino/ Los que ya sabis cmo funciona SSH no os habris sorprendido, los que no tranquilos, es fcil de entender:

sshfs es el comando que va a realizar el montaje remoto ceec es la cuenta a la que tenis acceso en el equipo remoto. En mi caso es el porttil y se llama tambin ceec, como en el equipo de sobremesa. 192.168.1.4 es la ip del porttil en la red local. Puede usarse perfectamente una IP pblica (la de internet) para acceder desde el trabajo a casa por ejemplo. /home/ceec es la carpeta del ordenador remoto que quiero montar en /home/ceec/pepino/ que es la carpeta del equipo que tengo delante. Supongo que ya lo habis entendido bien. Pero hay un pequeo problema. Si no habis sido previsores funcionar sin problema ya que SSH y por consiguiente SSHFS usan el puerto 22 por defecto. Si no habis seguido el manual de SSH donde os recomendaba entre otras cosas que cambiarais el puerto os habr funcionado. Los que s me hicieran caso, no les habr funcionado porque el puerto que usis en SSH no es el 22. Para indicarle a SSHFS qu puerto hay que usar es igual que en SSH, es decir: $ sshfs -p 8448 [email protected]:/home/ceec /home/ceec/pepino/ Siendo 8448 el puerto del ordenador remoto. Ahora no debera daros ningn problema. Id a la carpeta que hayis montado (en el ejemplo /home/ceec/pepino/), entrad y veris que aparecern todo lo que tuvirais en la carpeta que le hayis indicado del equipo remoto (en el ejemplo /home/ceec). A partir de este momento, todo lo que borris, aadis, modifiquis de esa carpeta, lo haris tambin de la carpeta del otro ordenador. Tan slo queda un detalle por ensearos. Una vez montada la carpeta cmo se desmonta? $ fusermount -u /home/ceec/pepino Listo. Es un buen mtodo para tener algo de vuestro ordenador siempre accesible, o bien para trabajar directamente sobre tus archivos remotos, o bien para compartir lo que queris a modo de FTP casero o algo parecido. Hay otras alternativas como SFTP y SAMBA, pero hay un punto a favor muy bueno para usar SSHFS, su facilidad de instalacin, configuracin, uso y, sobre todo, su seguridad ya que toda la informacin que viaje de un equipo al otro estar encriptada. Prctico, verdad?

Conocas screen?Hoy os traigo una de esas cajitas pequeas que guardan algo muy valioso en su interior. Una de esas diminutas joyas que tanto podemos llegar a admirar. Aquellos a quienes les gust rtorrent y el manual de SSH, os vendr muy bien. Y a los que no, probablemente tambin. Os presento el desconocidoscreen. Digo que es una pequea joya porque es un programa/comando diminuto que ofrece un potencial muy considerable. Lo ms sorprendente es que pese a estar instalado por defecto en la mayora de distribuciones es un gran desconocido, as que ah va esta lanza a favor, aunque el beneficiado final ser el propio usuario, todos vosotros. Antes de continuar aviso que el texto es de amplia lectura, pero prcticamente todo son explicaciones para que lo entienda hasta el ms novatillo. Como deca, en Ubuntu (y la mayora de distribucciones) ya viene instalado por defecto, as que no tenis que instalarlo. Si la vuestra no fuera una de ellas tan slo tenis que descargarlo de vuestros repositorios. Si usas Debian o una distro basada en esta: $ sudo aptitude install screen

Pero qu es screen?Pues segn la descripcin del propio programa viene a ser un emulador de terminales virtuales. A priori no os dice mucho, verdad? Puede que si os dijera que permite varias consolas en una sla (estilo pestaas) veais un punto a favor. Y si os dijera que podremos desconectar sesiones, que sigan trabajando en segundo plano y conectarlas despus a la misma consola, u otra en el mismo PC, u otra en otro PC de tu red local o a travs de Internet An no lo veis claro? No os preocupis y seguid leyendo, os lo explicar poco a poco y dejar el plato fuerte respecto a su uso para casi el final. Os aseguro que acabaris viendolo de gran utilidad.

Ejecutar screenPara abrir nuestro programita tan slo tenemos que escribir su nombre en consola: $ screen Nos mostrar un texto con la licencia. Para continuar tan slo tenemos que pulsar la tecla Espacio o Enter. Si por otro lado os resulta molesto, podemos hacer que no aparezca nunca ms. Cread con vuestro editor de texto favorito un fichero en vuestra carpeta personal que se llame .screenrc y copiad esta lnea dentro: startup_message off Guardadlo y cerrar el editor. Probad ahora si queris a abrir otro terminal y volved a ejecutar screen. Ahora os mostrar directamente un terminal nuevo, sin la licencia previa.

Antes de continuarPara agilizar las explicaciones y que a la vez queden ms claro: Vamos a usar varios atajos de teclado (shortcuts) un tanto extraos, propios de screen. Todos comenzarn por Ctrl+a y una tecla u otra combinacin. Esto no quiere decir que se tenga que pulsar todo junto, sino que primero pulsaris Ctrl+a y despus la otra tecla o combinacin. Por ejemplo: Ctrl+a + c. Esto quiere decir que primero se pulsara Ctrl+a, soltamos las teclas y pulsamos c. Para que la notacin sea ms clara usar la que viene en el man de screen, es decir,C-a=Ctrl+a, por lo que el ejemplo anterior se reducira a: C-a c, que para que no quede lugar a dudas repito que sera equivalente a pulsar primero Ctrl+a y despus la tecla c

Scroll de screen / Copiar y pegarEstamos en una consola de screen. Haced un listado de /etc por ejemplo: $ ls /etc Obviamente no se pueden mostrar todos los ficheros en pantalla, hay demasiados. Vale, podremos hacer scroll. Sin embargo veis que no funciona. No os preocupis, s que hay scroll en screen pero es distinto, puede que incluso hasta mejor. Tenemos que verlo como un cambio de modo. Por un lado activamos el modo de scroll ( C-a [ o C-a

C-Esc). Luego podremos desplazarnos con los cursores como si estuviramos en un editor de textonormal. Si subimos, la pantalla har scroll junto con el cursor. Cuando acabemos tan slo tenemos que pulsar "Esc" o '[' y volveremos al modo normal. Algunos os habris percatado que cuando activis este modo abajo pone algo as como "Copy

mode". Esto se debe a que este modo en el que entramos es en el fondo para copiar texto, aunque nos permite hacer el scroll. Estando en ese modo cuando pulsamos " Enter" comenzar a seleccionar texto, nos desplazamos y estemos al final de lo que queremos copiar, volvemos a pulsar " Enter".Finalmente podremos pegar la copia del texto que hemos hecho pulsando la combinacin " C-a ]. Resumiendo:

C-a [ / C-a C-Esc= Entrar en modo copia/scroll cursor = desplazamiento del cursor (si estamos en modo copia/scroll) Enter = Comenzar seleccin texto / Finalizar seleccin texto, copiar y salir modo copia/scroll ESC / [ = Salir del modo copia/scroll sin copiar nada C-a ] = Pegar el texto copiado .

Multiconsola en screenScreen crea consolas virtuales. Como introduje antes, es como si tuviramos en una sla consola varias pestaas. Pensaris que teniendo las pestaas reales para qu queremos esto? En ocasiones (unos usuarios ms que otros) tienen que trabajar slo con el intrprete de comandos, sin entorno grfico y aunque tenemos varias consolas con Ctrl+Alt+Fx, puede ser ms prctico usar las consolas virtuales de screen, y ms an cuando pensamos en el punto siguiente al actual. Una vez que estemos en screen, podemos crear otra consola, con la pulsacin de C-a c, o bien escribiendo screen detro de una consola del propio screen. Podemos hacer un listado de las consolas que tenemos abiertas con C-a w. Abrid cuatro consolas y haced un listado de ellas. Os saldr algo parecido a esto: 0-$ bash 1$ bash 2*$ bash 3$ bash Si os dais cuenta hay dos de ellas distintas al resto. Una tiene un * y otra un - entre el nmero y el $. La consola que tiene el * es la consola actual, la que estamos viendo. La que tiene el - es la que se activ antes que la actual. Podremos cambiar entre ambas con la combinacin C-a a o navegar con siguiente consola (C-a n) y la anterior (C-a p). Para cambiar a una especfica podemos hacerlo con C-a num donde num es el nmero de la consola en cuestin que se ha listado anteriormente. Otra forma de hacerlo es con C-a , que nos preguntar a cual queremos cambiar; introducimos el nmero y pulsamos Enter. Y otra quiz mejor es mediante C-a , se nos presentar un men con las consolas abiertas, seleccionamos con las flechas abajo/arriba y confirmamos con Enter. Pero no os aclaris mucho con los nombres, verdad? Bueno, tambin se le pueden poner nombres a las consolas para que a la hora de verlos con el listado (C-a w) o el men (C-a ) nos aparezcan los nombres en lugar del intrprete bash. Nos colocamos en la consola a la que queremos bautizar y pulsamos C-a A (daros cuenta que en la segunda a debe ser mayscula, as que pulsad Shift+a), borramos el nombre bash, ponemos el que queramos y confirmamos con Enter. Si ahora listamos nos saldr el nombre. Aqu tenis un ejemplo:

Puede ser engorroso inicialmente, pero os prometo que si jugueteais un poco con esto, acabaris entendindolo bien y puede resultar muy muy prctico Resumimos:

C-a c / screen: crea una nueva consola virtual en screen C-a w: lista las consolas abiertas

C-a C-a: cambia ente las dos ltimas consolas seleccionadas C-a n: cambia a la siguiente consola C-a p: cambia a la consola previa C-a num: cambia a la consola determinada por num C-a : cambia a la consola que le indiquemos posteriomente con el nmero que la identifica C-a : men que nos permite cambiar a la consola que queramos C-a A: nos permite ponerle un nombre a la consola actual .

Desligar/ligar sesiones en screenSi el punto anterior ya es de por s productivo e interesante, este puede serlo incluso ms. Os comentaba al principio que particularmente aquellos que siguieran el manual deSSH y el conocas de rtorrent estaran especialmente interesados. De hecho, aunque ya tena planeado publicar esta entrada hoy, justo ayer un lector dio con la clave. preguntaba que cmo poda hacer para ver las descargas de rtorrent remotamente, desde otro ordenador, ya que rtorrent no funciona en segundo plano, como un daemon. Pues bien, aunque rtorrent no lo permite, podemos hacerlo gracias a screen. Una de las principales caractersticas, junto con la multiconsola, de screen es que permite desconectar sesiones de la terminal donde se abri y volver a abrir la sesin en ese mismo terminal, en otro del mismo PC u otro de cualquier otro ordenador. Qu quiere decir esto? Pues bien, si tenemos 4 consolas abiertas (en screen) en una sesin, lo que podemos hacer es desligarla de la terminal y seguir funcionando, como si fuera un daemon (segundo plano). Y lo mejor de todo es que despus podremos volver a conectar esa sesin en cualquier consola (independientemente de si es el ordenador local o uno remoto) y lo veremos en su estado actual, no como estaba cuando se desconect. He hecho un par de dibujos conceptuales para que lo entendis mejor. Imaginad que tenemos dos ordenadores, uno en casa y otro en nuestra oficina. Abrimos un terminal en el de casa, ejecutamos screen y tenemos tres consolas distintas. En una de ellas ejecutamos rtorrent. Nos vamos a la oficina, abrimos una consola, conectamos por SSH a nuestro ordenador de casa. Queremos ver cmo van las descargas, as que desligamos la sesin del terminal que tenemos en casa y la ligamos al que tenemos delante, en el ordenador de la oficina. Grficamente este sera el estado inicial (intentad obviar mis dotes artsticas xD):

Y este otro una vez hemos dirigido la sesin de casa al terminal del trabajo:

Obviamente tanto el rtorrent, como el links como el bash de mi carpeta personal son de mi ordenador de casa, pero estaran siendo mostrados y controlados desde mi ordenador del trabajo. Podemos tener tantas sesiones como queramos y cada una de ellas podr tener tantas consolas como deseemos. Tambin podemos desligar/ligar tantas sesiones como queramos a las terminales que queramos, local o remotamente va SSH, no tiene limitaciones, excepto que una sesin no se puede mostrar en ms de un terminal, tal y como mostraban los dibujos, es decir, si un amigo vuestro tiene acceso a vuestro ordenador y t ests viendo rtorrent, tu amigo no podr verlo a la vez que t, sino primero uno y luego otro. Explicado todo esto y confiando en que ya tengis clara la idea, ahora costar menos mostraros cmo hacerlo, primero en vuestro propio ordenador. Para desconectar una sesin (lo que es lo mismo, mandarla a un segundo plano a modo de daemon) lo nico que tenemos que hacer es colocarnos en dicha sesin y pulsar C-a d. Veris este mensaje: [detached] Ahora estamos en la terminal normal que abrimos al principio, gnome-terminal, konsole, xterm, la que sea. Para recuperar la sesin y volver a ver su contenido escribimos en la consola: screen -r. Ahora hemos abierto a screen con las consolas virtuales que habamos mandado a segundo plano. En caso de tener ms de una sesin desligada, al intentar recuperar una con screen -r nos dir lo siguiente: There are several 20535.pts-8.belgarath 20169.pts-1.belgarath (Detached) suitable screens on: (Detached)

Nos est diciendo precisamente que tenemos varias sesiones y no sabe cual es la que queremos. Se lo indicamos con el nmero que la identifica, siendo el nmero ms bajo, la sesin ms antigua: screen -r 20169 Ahora bien, si estamos en la oficina, la casa de un amigo, la universidad o donde sea y queremos ligar una sesin de nuestra casa tendramos que:

Conectar por SSH Desligar la sesin que queramos Ligarla En caso de que slo tuveramos una sesin abierta en casa primero conectaramos porSSH y despus podramos desligar la sesin de casa y ligarla en el ordenador remoto con un slo comando: $ screen -dr

La d desliga la sesin y la r la liga a la terminal que estamos usando. Si hubiera varias sesiones tendramos que ver qu sesiones hay y hacer lo mismo que antes pero indicando el nmero de la sesin deseada: $ screen -dr 20169 El argumento d es normal usarlo remotamente para desligarlo del ordenador donde puede estar previamente ligado. Si estamos en el ordenador local no se usa tanto a no ser que queramos llevar una sesin de un terminal a otro dentro del mismo sistema. Resumimos:

C-a d: desliga la sesin actual screen -r: liga la sesin (si es nica) a la terminal actual (local o remota). Si hay varias sesiones, mostrar sus identificadores numricos screen -r nmero: liga la sesin identificada por nmero. screen -dr: desliga la sesin (si es nica) del terminal asociado y la liga al terminal actual (local o remota). Si hay varias sesiones, mostrar sus identificadores numricos screen -dr nmero: desliga la sesin especificada por nmero del terminal asociado y la liga al terminal actual .

Cerrar consola virtual / screenPor ltimo, el mtodo para salir de una consola virtual generada dentro de screen es el mismo que para salir de una consola estndar, tecleamos exit, o bien puedes usar el atajo C-a k. Si ests cerrando la ltima consola virtual, tambin te saldrs de screen. Si queremos cerrar todas las consolas virtuales de una sesin y salir de screen, basta con usar el atajo C-a \ (para los que no les salga: Ctrl+a y luego Alt Gr+). Resumimos:

C-a k / exit: cierra la consola actual de screen. Si es la ltima se sale del programa C-a \: Cierra todas las consolas y se sale de screen .

Ms atajos e informacinAunque creo que ha quedado bastante completo el manualillo de screen, an quedan bastantes ms shortcuts y algunas funciones ms. Quien tenga ms inters por el tema, pueden hacer un man a screen:

$ man screen O bien, dentro del propio screen, usar el atajo C-a ? y os saldr un completo listado de todos los shortcuts del programa. Espero que os haya venido bien conocer a este pequeo olvidado y que lo disfrutis pues como habis visto, tiene muuuuuucho que aportarnos.

Administracin remota grfica: FreeNXHace unos das os present un tutorial con el que podais controlar remotamente un ordenador de una forma muy muy fcil con Vino/VNC. Este que os entrego hoy no es tan sencillo, pero tampoco es excesivamente ms complejo. NX es una solucin de administracin remota de la empresa NoMachine. Pese a ser un software de pago liber sus bibliotecas (libreras) y se cre una edicin totalmente libre y gratuita: FreeNX. Est algo limitada respecto a la de pago ya que slo permite dos conexiones simultneas a una misma mquina, pero para la mayora de vuestros usos es ms que suficiente. Este sistema, FreeNX, tiene dos ventajas contra VNC/Vino: es ms seguro ya que usa SSH en su conexin y la informacin viaja encriptada, y por otro lado es ms rpido ya que en lugar comprimir pantallazos o capturas del escritorio, comprime y enva directamente el protocolo X11, algo que se notar especialmente si conectamos va Internet. Sin embargo tiene una pega importante: no muestra el escritorio remoto, lo que hace es una especie de nueva sesin en el ordenador ajeno. Supongo que debe haber alguna solucin o configuracin para que inicie la sesin abierta, aunque personalmente no he encontrado cmo.

Instalar FreeNXDebis instalar NX Free en ambas mquinas. Para ello, mejor que andar descargando paquetes que vayan quedando obsoletos, vamos a usar un repositorio donde lo tomaremos. Abrimos el archivo de repositorios con gedit o el editor que ms rabia os d: $ sudo gedit /etc/apt/sources.list Y al final del todo (por ejemplo) agregamos los repositorios: #NX Free deb http://free.linux.hp.com/~brett/seveas/freenx/ feisty-seveas freenx deb-src http://free.linux.hp.com/~brett/seveas/freenx/ feisty-seveas freenx Guardamos y cerramos el fichero. Ahora tenemos que descargar y aadir la clave para que nos autentique los ficheros que vamos a descargarnos. Escribimos en consola: $ wget http://free.linux.hp.com/~brett/seveas/freenx/seveas.gpg -O- | sudo aptkey add Actualizamos el ndice de repositorios para que ste contenga la informacin de los paquetes del repositorio que acabamos de agregar: $ sudo aptitude update Y finalmente, instalamos tanto el servidor como el cliente de FreeNX: $ sudo $ sudo aptitude install freenx nxclient aptitude update

Por ltimo, tenis que abrir el puerto 5000 (adems del usado por SSH) si vamos a conectar a travs de Internet. En casio contrario no es necesario. Ya lo tenemos instalado en nuestros sistemas. En principio ya est, pero puede no ser as. Como coment al principio, NX Free se sirve de SSH para conectar ambos equipos, as pues si no tenis instalado SSH, debis hacerlo tambin. Seguid este tutorial para hacerlo. Os recomiendo su lectura completa para garantizar mxima seguridad.

Configurar FreeNXBien. Si estamos aqu ya tenemos instalado y configurado SSH, y tambin tenemos instalado NX Free, falta configurarlo. FreeNX usa unas claves para hacer login en el servidor remoto, tenemos varias opciones pero vamos a elegir una especfica que es la opcin que menos problemas da. Escribimos en consola: $ sudo dpkg-reconfigure freenx

Se nos muestra un texto que nos lo explica. Una vez ledo pulsamos la tecla tabuladora para que cambie el foco al botn Aceptar y pulsamos Enter. Nos aparecer lo siguiente:

Con los cursores elegimos la opcin NoMachine keys, le damos al tabulador para que de nuevo el botn Aceptar tome el foco y le damos al Enter. Lista esta parte Ahora vamos a configurar el puerto de NX Free para que sea el mismo que configuramos en SSH, insisto en que el puerto debe ser el mismo. Abrimos el fichero de configuracin que lo contiene: sudo gedit /etc/nxserver/node.conf Buscamos una variable llamada SSHD_PORT que contiene el valor 22 (puerto por defecto de SSH) y que est precedido por un smbolo #, esto significa que dicha variable est anulada. La activamos quitando dicho smbolo y ponemos el puerto que configuramos en SSH, por ejemplo el 4444. Pasara de #SSHD_PORT=22 a SSHD_PORT=4444 Guardamos y cerramos el fichero. Ya estamos acabando. Nos queda hacer tres cosas. La primera es agregar el usuario al servidor NX. El usuario es el nombre de la cuenta que va a conectar a la mquina remota y que a la vez puede conectar va SSH. Llammosle por ejemplo pepino: sudo nxserver --adduser pepino La clave que usar el usuario pepino:

sudo nxserver --passwd pepino Y finalmente reiniciamos el servidor NX para que se apliquen estos cambios. sudo nxserver --restart Ya tenemos el servidor instalado, configurado y a la espera de que alguien conecte.

ConectandoEs simple, escribimos en consola: /usr/NX/bin/nxclient & Y se nos mostrar una pantalla como esta:

Podis crear un lanzador, o un alias o lo que os resulte ms cmodo si no queris memorizar la ruta y el comando. Si le dais al botn Configure podris aadir la ip, puerto, el escritorio, las dimensiones de la ventana que contendr el escritorio remoto

Incluso si pulsis el botn Settings tendris ms opciones como el formato de las imgenes, su compresin, etc. Bien. Configurada la sesin para conectar, slo falta que le deis al botn Login que se os muestra en la penltima captura e iremos teniendo este progreso sucesivo (gif animado):

Y tras esto se nos abrir la ventana donde aparecer el escritorio, pero antes mostrar el logotipo de NoMachine (!M, el smbolo ! es la negacin en varios lenguajes de programacin):

Finalmente loguear en la mquina remota mostrndonos su escritorio. Para salir, cerramos la ventana y en la pregunta que nos haga, seleccionamos Disconnect.

Lo que debes saberEn contra de lo que suceda con VNC/Vino, aqu no tendremos que desactivar previamente Beryl/Compiz previamente en el ordenador remoto, pero tampoco se podr usar. En el momento en que hagis login remotamente e inicie vuestra sesin, usar Metacity, Kwin o el gestor de ventanas que use el escritorio remoto que no haga uso de la aceleracin.

CapturaAqu una captura del escritorio de mi porttil (salamandra) en el escritorio del ordenador de sobremesa (belgarath) usando FreeNX:

Administracin remota grfica: VinoCuando hablamos de administracin remota en Linux, tenemos que hablar de SSH. Sin embargo en ciertas situaciones, bajo determinadas circunstancias y segn el usuario, quiz le venga mejor una administracin grfica, de escritorio. Hoy vamos a ver una de ellas, la ms sencilla: Vino pero es otro al del otro da xD

Introduccin: Qu es Vino?SSH nos da potencia y seguridad en lo que es la administracin remota de servidores, del propio sistema y para muchos de sus programas simplemente es el mejor. Pero en la era del escritorio no nos vale para muchos programas grficos. Ubuntu viene con un sistema de administracin remota grfica ya instalado. Se llama Vino y no es ms que un servidor del conocido VNC (Virtual Network Computing. Es la solucin ms sencilla pero no la nica, ms adelante veremos otra alternativa. Os pongo ya sobre aviso de que no es un sistema seguro (la informacin no viaja encriptada) y es relativamente lento, aunque no en exceso. Si no sois unos maniticos de la seguridad o lo vais a usar en una red local os vendr bien, especialmente por su sencillez.

Instalar VinoEn Ubuntu no hay que instalarlo, como comentaba antes ya viene instalado con la distro.

Configurar VinoComo es normal en este tipo de aplicaciones suele usar un puerto especfico. Lo mnimo que podemos hacer en cuanto a seguridad si vamos a usar nuestro PC a travs de Internet es cambiar el puerto por defecto. ste es el 5900. Para cambiarlo vamos a hacerlo va editor de configuracin de GNOME. Pulsamos Alt+F2, escribimos dentro gconf-editor y seguimos esta ruta: / > desktop > gnome > remote_access. A la derecha nos fijamos en la primera entrada: alternative_port con el valor 5900. Lo cambiamos por el puerto que queramos y listo. Es totalmente necesario que abris el puerto que estis usando (5900 o el que hayis puesto) si estis usando un router. Aclarado el tema del puerto, vamos a pasar a la configuracin propia de Vino. Vamos a Sistema >

Preferencias > Escritorio remoto y se nos abrir la ventana de configuracin de Vino:

Permitir a otros usuarios ver mi escritorio: Habilita/deshabilita la administracin remota. Permitir a otros usuarios controlar tu escritorio: Permite -o no- que el usuario que se conecte a ti pueda controlar el equipo. La deshabilitacin tiene sentido por ejemplo si lo que queremos es simplemente mostrar algo a alguien, en lugar de hacer una captura, subirla y pasarle la direccin.

Pedir confirmacin: Es otro mtodo de seguridad para intentar evitar que nadie conecte a tu equipo sin previo consentimiento. Obviamente alguien debe estar delante del ordenador remoto para permitir el acceso. Se informar del siguiente modo:

Requerir que el usuario introduzca una contrasea: Otro nivel de seguridad que se puede combinar con la anterior -o no-. Cualquiera que pretenda acceder a tu escritorio deber introducir previamente una contrasea para validar el acceso. Elegid la mejor configuracin en base al uso que le vayis a dar.

Durante la conexinUna vez haya alguien conecte a tu sistema, se informar de ello mediante un mensaje emergente. Adems desde ese instante y hasta que finalice la conexin permanecer un icono en el panel, en la zona del reloj:

Si por cualquier circunstancia deseas echar a alguien, puedes seleccionar a quin, o a todos. Para ello tan slo tienes que hacer click derecho sobre el icono que se ve en la imagen superior y elegir la opcin deseada:

Cmo conectar?Tan slo tenis que teclear en la consola (o en Alt+F2) vncviewer seguido de la IP de la mquina remota. Supongamos que es 192.168.1.84: $ vncviewer 192.168.1.84 Si hemos cambiado el puerto, por el 4444 por ejemplo: $ vncviewer 192.168.1.84:4444 Despus os pedir el password y/o tendris que esperar a la confirmacin de acceso si estn habilitados en el servidor.

Conexin inversaPuede haber casos en los que el equipo remoto no pueda o no sepa abrir el puerto necesario para la conexin. Existe una forma de hacer una conexin invertida, es decir, que el usuario remoto nos lance su escritorio al nuestro y no que nosotros lo pidamos. Para entenderlo mejor, lo que hemos visto hasta ahora sera como pedir una moneda, y el otro te la lanza. Ahora lo que vamos a hacer es estar esperando a que nos lancen una moneda y esa otra persona lo har, sin que hagamos la peticin.

Siguiendo con el ejemplo es obvio que cada usuario debe estar presente en su respectivo ordenador, uno para recibir la moneda y el otro para lanzrsela. Es fcil. Siguiendo con el ejemplo, lo primero que tenemos que hacer es mantenernos alerta por si nos lanza una moneda. Nos ponemos a la escucha de alguna peticin, as que escribimos en una consola: $ vncviewer -listen & Ahora el usuario remoto tiene lanzarle la moneda. Para ello vamos a necesitar un paquete extra, as que vamos a instalarlo: $ sudo aptitude install x11vnc Est todo listo, slo falta que nos tiren la moneda. El usuario remoto debe lanzrnosla con este comando: $ x11vnc -connect ip:puerto La IP ser la de nuestra mquina (la que controlar a la otra) y el puerto slo ser necesario si la conexin se realiza a travs de Internet, de ser as adems debis saber que la IP debe ser la pblica (por ejemplo 83.128.32.12). Si es una conexin en una red local, se trata de la IP privada (por ejemplo 192.168.1.4). Tras tirarnos la moneda nos aparecer el escritorio del que nos la ha lanzado y podemos controlarlo de igual forma.

Lo que debes saberEste programa en una red local va realmente muy bien. A travs de Internet sin embargo puede ser ligera o bastante lenta (segn la conexin). Sin embargo implementa una pequea caracterstica muy til. El movimiento del ratn es igual de lento/rpido que lo que tarde en mostrar el resto del escritorio, pero podremos manejar con l un pequeo cuadrado que indica dnde est apuntando realmente el puntero, y su velocidad es la real, por lo que ayuda mucho a la hora de anticiparnos a la carga del escritorio. Actualmente no es compatible con Beryl/Compiz en el sistema remoto. Es decir, si vamos a acceder a un ordenador, ste no debe estar usando ni Beryl, ni Compiz, sino Metacity, kwin o el que sea segn el entorno. Si por cualquier circunstancia vas a conectar a un ordenador que usa Beryl/Compiz, puedes deshabilitarlo mediante SSH. No funcionar la tpica orden metacity replace para que use Metacity. Para que s lo haga tienes que indicarle a la sesin SSH en qu escritorio/pantalla debe efectuar la orden. Este es el comando que debes introducir para que active Metacity y desactive Beryl/Compiz: DISPLAY=:0 metacity --replace &

(Ojo, son dos guiones antes del replace) Ahora ya podrs conectar mediante vncviewer. Para restaurar el gestor de ventanas que tenas, debes hacerlo de igual forma que antes slo que cambiando metacity por compiz o beryl junto con los argumentos que veas oportunos. Para ms detalles podis hacer un man a vncviewer:$ man vncviewer Por ltimo, es recomendable que cambiis la resolucin del ordenador remoto a una inferior a la que estamos usando en el sistema que tenemos delante. Realmente no sucede nada por no hacerlo, pero vais a trabajar muy mal si no lo hacis.

ConclusinSin duda es una eficaz herramienta y se agradece mucho que ya venga instalada en Ubuntu y su simplicidad. Particularmente hace no mucho he instalado a mi hermana Ubuntu, y aunque no tiene muchos problemas siempre me pregunta alguna que otra cosilla. Lo que hago es conectarme mediante Vino a su ordenador y mientras le voy explicando por el micro, le voy enseando cmo se hace algo. De esta forma se lo soluciono sin tener que ir a su casa y adems aprende cmo se hace.

CapturaUna captura de todo lo que hemos visto, el escritorio de salamandra (mi porttil) dentro de belgarath (mi ordenador de sobremesa) mediante Vino:

Click para agrandar

Conocas gFTP?En la mayora de las ofertas de ADSL y otras bandas anchas se nos suele ofrecer un espacio remoto accesible mediante FTP. En ese espacio podemos crear nuestra propia pgina web o subier ciertos ficheros que nos interesa tener en un ordenador remoto. Unos lo usan a modo de copias de respaldo, otros para pasar algo a alguien, etc. Cmo subir nuestros ficheros a ese espacio? Con gFTP es muy sencillo. Sin embargo tambin tiene un uso muy muy prctico, nos valdr como interfaz grfico para copiar ficheros mediante SSH. Tenemos un espacio remoto en Internet, o queremos subir un pack de fotos de vacaciones a nuestro sitio para luego darle la URL a los amigos y se lo descarguen, o queremos tener unos backups de ciertos archivos en un ordenador remoto, o queremos pasar ficheros del ordenador de la oficina al de casa (o viceversa), etc. Todo esto lo puede hacer un sencillo cliente de FTP como es gFTP. Liviano y completo con soporte para los protocolos FTP, HTTP, FSP y SSH2. Para instalarlo es tan fcil como todo lo que veis en los Conocas sudo aptitude install gftp Y para ejecutarlo igual de fcil. Podemos abrirlo desde Aplicaciones > Internet > gFTPo bien pulsando Alt+F2 y escribiendo dentro gftp. Tras esto se nos mostrar una ventana con el interfaz tpico de este tipo de programas. Tenemos 4 zonas bien distinguidas:

Opciones de conexin: Aqu podremos configurar rpidamente una conexin con el otro equipo. El servidor y puerto del equipo remoto, nuestro login y password en l, y el tipo de protocolo a usar. El iconito de los dos ordenadores sirve para conectar/desconectar, aunque esto lo podemos hacer con la tecla Enter tambien. Y finalmente el icono con la seal de prohibido para cancelar la conexin pendiente.

Listado de archivos. Justo debajo y ocupando la mayor parte de la ventana tenemos esta seccin que a la vez est dividida en otras dos. La de la izquierda nos muestra la ruta de nuestro equipo local (editable) y debajo un listado de las carpetas y archivos de dicha situacin. A la derecha exactamente lo mismo pero del equipo remoto. Obviamente estar vaco hasta que conectemos. Las flechitas que hay entre medias es para copiar archivos de un lado al otro segn el sentido de las flechas. Finalmente para crear carpetas, renombrar ficheros etc, lo podemos hacer mediante el men contextual con el botn derecho.

Listado de tareas. La seccin que le sigue es una lista de las tareas de gFTP mostrando las que ha hecho, las que le queda por hacer y las que est haciendo. Tambin ofrece informacin de la tasa de transferencia, porcentajes, etc.

Registro de salida. Finalmente la seccin inferior es un log o registro de salida. Aqu nos muestra todas las acciones que hace y si hay algn error tambin se nos mostrar aqu.

Como casi cualquier cliente de FTP, gFTP tambin nos ofrece la posibilidad de gestionar unos favoritos o marcadores. Estos sirven para guardar la configuracin de conexin a un equipo en cuestin de tal forma que podamos conectar con un simple click de ratn. Esto es algo realmente muy prctico para aquellos que tengan varios FTPs o lo usen para pasar archivos de un ordenador a otro. Un ejemplo muy prctico es que entre un grupo de amigos tengan cuentas SSH entre sus ordenadores. Gracias a esto y gFTP podis pasaros archivos los unos a los otros con todas las ventajas que ofrece este protocolo. Imaginaros lo mismo en una red local si tenis varios ordenadores, o pasaros cosas de casa a la oficina o viceversa. Por ejemplo yo tengo varias cuentas FTPs aunque slo uso un par, y por otro lado el porttil en red local con el ordenador de sobremesa. Tengo un marcador por cada uno de ellos de tal forma que con ir al men Marcadores y seleccionar donde quiero conectar, ya se encarga gFTP de hacerlo.

Tiene algunos puntos en contra, pero no son intratables. Por ejemplo en el interfaz la caja de texto del puerto y la contrasea no son lo suficientemente anchas como para verlo bien, aunque no es mayor problema ya que usando los marcadores, esos datos slo tendras que rellenarlos una vez. Para agregar un marcador es muy simple. Rellenis los datos de conexin de la ventana principal, conectis y despus vais a Marcadores > Aadir marcador (o pulsisCtrl+A). Ahora podis poner el nombre del marcador o si tenis varios y queris organizarlos en carpetas como visteis en la captura anterior basta con poner: nombre_carpeta/nombre_marcador. Por ejemplo, basndome en mi captura: locales/salamandra. Finalmente os dejo con una captura de gFTP copiando archivos. Espero que os haya venido bien

SSH (Secure Shell) es un protocolo seguro que le permite conectar al servidor para poder ejecutar comandos. Estas instrucciones son para este programa de SSH Para ms informacin sobre SSH haga click aqu

Conectar al servidor mediante SSH1. Abra el programa SSH

2. Pulse la barra espaciadora para conectar

3. Rellene las casillas con sus datos: Host Name: sudominio User Name: sunombredeusuario 4. Pulse el botn "Connect" 5. Cuando se lo solicite, introduzca la contrasea de su dominio

6. S la contrasea es correcta, acceder a la consola. Desde la cual puede trabajar con comandos UNIX

Servidor SSH en Ubuntu : Manual para configurar un servidor SSH en Ubuntu y entrar a tu equipo de forma remota con seguridadEn este manual hablaremos sobre el SSH y cmo configurarlo para acceder remotamente a nuestro equipo con GNU/Linux, tambin podremos acceder a nuestros routers si tienen firmwares basados en Linux como Tomato RAF. Qu es SSH? Las siglas corresponden a Secure SHell. Sirve para acceder a mquinas remotas, igual que hace telnet, pero de una forma segura ya que la conexin va cifrada. El transporte se hace mediante TCP, por tanto nos garantiza que las rdenes van a llegar a su destino (conectivo, fiable, orientado a conexin). Seguridad El cifrado de SSH proporciona autenticidad e integridad de los datos transmitidos por una red insegura como internet. Utiliza llaves pblicas para la autenticacin en la mquina remota. SSH no slo sirve para usar comandos en mquinas remotas, sino para transferencias de ficheros de forma segura ya sea por SCP o sFTP y servicios de escritorio remoto. Mirad 25 formas para sacarle partido al SSH

InstalacinVamos a usar OpenSSH por tanto vamos a instalarlo: sudo apt-get install openssh-server Ahora procedemos a su configuracin.

Comandos que debemos tener en cuentaPara editar la configuracin del servidor SSH debemos hacer en consola: sudo gedit /etc/ssh/sshd_config Para arrancar el servidor: sudo /etc/init.d/ssh start * Starting OpenBSD Secure Shell server sshd Para parar el servidor: sudo /etc/init.d/ssh stop * Stopping OpenBSD Secure Shell server sshd Para reiniciar el servidor:

sudo /etc/init.d/ssh restart * Restarting OpenBSD Secure Shell server sshd

Configuracin del servidorUna vez instalado, vamos a configurar el servidor, hacemos en consola: sudo gedit /etc/ssh/sshd_config Y podremos editar sus opciones, os pongo mi fichero de configuracin y una explicacin de lo que podis cambiar. # Package generated configuration file # See the sshd_config(5) manpage for details # Ponemos el puerto a escuchar por el SSH, por defecto es el 22. Deberemos abrir un puerto en nuestro router redirigiendo hacia la IP interna de la mquina donde lo tengamos. Port 1234 # Usaremos el protocolo 2 de SSH, mucho ms seguro, por tanto forzamos a que siempre conecten por protocolo 2. Protocol 2 # HostKeys for protocol version 2. El lugar donde se guardan las keys. HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key #Privilege Separation is turned on for security UsePrivilegeSeparation yes # Lifetime and size of ephemeral version 1 server key KeyRegenerationInterval 3600 ServerKeyBits 2048 # Logging SyslogFacility AUTH LogLevel INFO # Authentication, importante la parte PermitRootLogines vuestra decisin LoginGraceTime 120 PermitRootLogin no StrictModes yes RSAAuthentication yes PubkeyAuthentication yes #AuthorizedKeysFile %h/.ssh/authorized_keys # Dont read the users ~/.rhosts and ~/.shosts files IgnoreRhosts yes # For this to work you will also need host keys in /etc/ssh_known_hosts RhostsRSAAuthentication no # similar for protocol version 2

HostbasedAuthentication no # Uncomment if you dont trust ~/.ssh/known_hosts for RhostsRSAAuthentication #IgnoreUserKnownHosts yes # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords #PasswordAuthentication yes # Kerberos options #KerberosAuthentication no #KerberosGetAFSToken no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes X11Forwarding yes X11DisplayOffset 10 PrintMotd no PrintLastLog yes TCPKeepAlive yes #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net # Allow client to pass locale environment variables AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server UsePAM yes MaxAuthTries 2 Si usamos SFTP enjaulado debemos poner esto y comentar la lnea (Subsystem sftp /usr/lib/openssh/sftpserver): Subsystem sftp internal-sftp Match user servidor ChrootDirectory /home/jail/home AllowTcpForwarding no ForceCommand internal-sftp

Como podis ver, usando openssh-server tambin tenis levantado un servidor sFTP.

Enjaular un usuario con OpenSSH en UbuntuImaginemos que queremos crear un usuario a nuestro amigo Sanobis, pero no queremos que pueda ver todos los archivos del sistema, es decir, vamos a enjaularle en su directorio /home/ nicamente. Nos bajamos este archivo: http://cdn.redeszone.net/down/soft/redes/make_chroot_jail.sh Y lo ponemos en el directorio raz por comodidad. Le asignamos permisos 700 sudo chmod 700 make_chroot_jail.sh A continuacin escribimos: bash make_chroot_jail.sh sanobis Tecleamos yes, y a continuacin metemos la clave que queramos que tenga (estamos creando un usuario nuevo). Ahora, su directorio enjaulado es /home/jail/home/sanobis Salimos y entramos por ssh y veremos que efectivamente no podr salir de ese directorio. No hace falta que reiniciemos el servidor SSH. Opciones adicionales de Seguridad Podemos conectarnos al servidor sin usuario clave, utilizando un certificado RSA que proporcionar mucha ms seguridad, pero como siempre que sucede en estos casoses ms incmodo y no siempre vas a llevar encima tu certificado, por tanto esta parte la voy a obviar. Podemos tambin instalar el programa fail2ban para banear IPs que hagan muchos intentos de conexin fallidos (que metan mal la clave). Podemos instalarlo poniendo sudo apt-get install fail2ban Ahora hacemos: sudo gedit /etc/fail2ban/jail.local Y pegamos esto: [ssh] enabled = true port = 1234 filter = sshd

logpath = /var/log/auth.log maxretry = 3 Y lo iniciamos,paramos y reiniciando haciendo como si fuera el SSH, en este caso start=iniciar: sudo /etc/init.d/fail2ban start Para ver los LOGS de conexin haced esto: cd /var/log/ gedit auth.log Tambin tenemos otro programa dedicado exclusivamente al SSH, se llama DenyHost y tiene una gran base de datos de IPs conocidas como atacantes. Con esto estaremos un poquito ms seguros.

Instalar un servidor SSH en linuxNota: sta es la vista de impresin del Manual de referencia completo en una sola pgina. Si lo prefiere puede encontrar la versin original aqu.

Un pequeo manual para instalar un servidor ssh y para configurar un cliente en linux o windows

1. ObjetivosEl objetivo de este documento es explicar el proceso de instalacin de un servidor SSH, para lo cual se analizaran los aspectos mas importantes de la instalacin y configuracin de un servidor SSH. Un servidor SSH nos ofrece entre otros los siguientes servicios: Establecer conexiones tipo telnet con un servidor, pero de forma segura (la informacin va encriptada). Utilizar el comando SCP para transmisin de ficheros, algo parecido a lo que hacemos con un ftp, pero de forma segura, ya que utiliza el protocolo ssh. Cuando disponemos de un servidor X (desde una maquina Linux), permite ejecutar aplicaciones grficas instaladas en el servidor de forma remota. Por ejemplo, nos permite ejecutar el fwbuilder que esta en el cortafuegos de forma que vemos en nuestra maquina el interfaz de fwbuilder sin que lo tengamos instalado Hay dos versiones de SSH, la SSH1 y la SSH2. La mas segura es la SSH2, y la SSH1 se mantiene por compatibilidad con sistemas anteriores. Las caractersticas de nuestra instalacin sern las siguientes: Utilizaremos SSH2, y configuraremos el servidor para que no permita SSH1. Para poder establecer la conexin, sera imprescindible utilizar la clave ssh (passphrase) y no permitiremos que se utilice la clave que el usuario tiene en el servidor. No permitiremos que el usuario root se pueda conectar. Si necesitamos entrar como root, primero debemos establecer la conexin ssh como un usuario normal, y luego a travs de un su - convertirnos en root.

2. Instalar OpenSSHUtilizaremos OpenSSH como servidor ssh en una mquina Linux

Los ejemplos estn hechos con Debian Sarge. De todas formas, el autor ha hecho esto mismo en un RedHat8 y el proceso es idntico. Tenemos distintas opciones a la hora de instalar el paquete: www.openssh.org descargar el paquete e instalarlo. En Debian ejecutar un apt-get install ssh En Fedora y el resto de distribuciones, utilizar el programa de gestin de paquetes para escoger e instalar el paquete ssh. La instalacin es as de simple. :)

3. Configurar OpenSSHEste es un proceso que es fcil pero al que hay que prestar atencin. Una vez finalizada la instalacin, ssh queda configurado. El servicio pasa a estar controlado a travs del demonio sshd. Para arrancar el servicio:

/etc/init.d/ssh start Para detener el servicio:

/etc/init.d/ssh stop Para modificar la configuracin necesitamos abrir y modificar el fichero /etc/ssh/sshd_config. Esto es lo que hay que cambiar:

# el usuario root no se puede conectar a travs de ssh PermitRootLogin no RSAAuthentication yes PubkeyAuthentication yes RhostsAuthentication no hostsRSAAuthentication no HostbasedAuthentication no # Para arrancar en remoto aplicaciones graficas X11Forwarding yes

PasswordAuthentication no PermitEmptyPasswords no #Con esta opcin, solo permite validacin con la ChallengeResponseAuthentication no

passphrase ssh

4. Funcionamiento de SSHSe explica el funcionamiento bsico de ssh En el ejemplo que vemos en esta imagen, estamos intentando establecer una conexin ssh con el servidor, pero a la hora de introducir la passphrase le damos enter y no introducimos nada.

No nos da la opcin de probar con la clave que tenemos como usuario en el servidor, y nos cierra la conexin.

Al establecer la conexin se ha dado cuenta de que el usuario pedro tiene la cable publica de ssh configurada, y ha permitido el intento de conexin, aunque luego este intento ha fracasado al no introducir la passphrase.

Si un usuario que no tiene configurada la clave publica en el servidor intenta conectarse el servidor no permite la conexin.

Utilizando SCP, podemos copiar ficheros desde nuestra maquina al servidor y viceversa. Esto es muy cmodo a la hora de hacer copias de seguridad. Por ejemplo, en el caso en que tengamos un servidor en la DMZ y no tengamos sistema de backup en esa maquina. Generalmente, la red interna dispone de sistemas de backup, con lo cual simplemente deberamos hacer un scp para traernos los ficheros a copiar de la DMZ a la red interna y poder as copiarlos en el backup interno.

5. Generando las claves SSHSe analiza el proceso de generacin de claves pblicas y privadas Para poder utilizar SSH, primero debemos generar las claves. Al generarlas, obtenemos dos ficheros, uno con el contenido de la clave privada, y el otro con el contenido de la clave publica.

En el servidor SSH pondremos nuestra clave publica, y la clave privada deberemos guardarla y tendremos cuidado de no drsela a nadie.

De esta forma, si tuviramos 5 servidores a gestionar, configuraramos nuestra clave publica en los 5, y a travs de la clave privada configurada en nuestra maquina, accederamos a todos los servidores sin ningn problema.

Generando las claves en Linux

Para crear las claves, tenemos que estar validados como el usuario que las va a utilizar. Si las generamos como root, solo el root podr utilizarlas.

ssh-keygen -t rsa aceptamos la carpeta que nos propondr dentro del home ~/.ssh/id_rsa

Luego introducimos la clave ssh o paraphrase que nos pide. Conviene que esta clave sea distinta a la que tenemos como usuarios en el servidor. Tras hacer esto, genera dos ficheros: Clave privada: ~/.ssh/id_rsa Clave publica: ~/.ssh/id_rsa.pub

Luego hay que modificar los permisos de la carpeta ssh:

chmod 755 ~/.ssh.

Generando claves en Windows

Con un PC Windows podemos ser clientes de ssh, para lo cual utilizaremos putty.

Putty es un cliente ssh creado por los de OpenSSH para sistemas windows. Permite SSH1 y SSH2, pero no solo eso, tambin nos permite entre otras cosas utilizar un programa llamado PSCP que nos da la funcionalidad de scp.

http://www.openssh.org/windows.html

Podemos descargar Putty directamente desde esta pagina:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Putty no es un solo programa, sino un conjunto de programa. Uno de ellos, el llamado puttygen.exe es el que nos permite generar las claves.

Le diremos que genere una clave SSH2-RSA de 1024 bits.

Dejaremos como estn las opciones por defecto.

Pulsaremos el botnGenerate y moveremos el ratn sobre la ventana, as el programa ira generando la clave.

Una vez hecho esto, nos pide que introduzcamos la passphrase . Esta Passphrase es la clave que utilizaremos al conectarnos va ssh con estas claves. Al conectarnos, no utilizaremos la clave que tenemos en el servidor como usuarios, sino que utilizaremos esta passphrase.

Ahora solo nos falta guardar las claves. Recordad que la clave pblica es la que dejaremos en los servidores, y no hay miedo de perderla, pero la clave privada debe estar bien guardada y solo nosotros debemos tener acceso a ella.

La clave privada la guarda en formato ppk, un formato que utiliza el putty.

Podemos guardar la clave publica en un fichero, o copiarlo de la ventana del putty y pegarla en un fichero de texto.

Copiar la clave publica en el servidor

Nos falta copiar la clave publica en el servidor al que queremos conectarnos. Hay que copiarla en el fichero ~/.ssh/authorized_keys del servidor.

Esto es importante. Es imprescindible copiar y pegar bien el texto, ya que un error en un caracter nos har imposible establecer la conexin.

Si hemos generado la clave en Linux, tenemos que copiar el contenido del fichero~/.ssh/id_rsa.pub generado en nuestra maquina al fichero ~/.ssh/authorized_keys del servidor.

Si hemos generado la clave con puttygen.exe, copiamos el contenido de la clave de la ventana del programa y la pegamos en el fichero ~/.ssh/authorized_keys del servidor.

Si en el servidor no existe el fichero ~/.ssh/authorized_keys lo creamos.

6. Crditos y licenciaInformacin sobre los recursos utilizados para crear este manual Este manual se ha generado utilizando software libre: The Gimp para las imgenes ( http://www.gimp.org/) Debian Sarge como sistema operativo, (http://www.debian.org/) OpenSSH, (http://www.openssh.org/)

Las fuentes de datos consultadas para elaborar el documento son las siguientes: http://www.europe.redhat.com/documentation http://www.openssh.org

Cmo usar ssh con su hostingEn este artculo le mostramos como utilizar puTTY para administrar su cuenta de hosting por medio de SSH (Secure Shell). Tambin encontrar informacin sobre que es SSH y teora bsica sobre el trmino. Este artculo est dirigido para la implementacin de puTTY en sistemas Windows.

Qu es ssh?SSH es el acrnimo para Secure Shell, una conexin segura de lnea de comandos hacia su cuenta de hosting. Esta, es una herramienta muy robusta y le permite realizar tareas que no son posibles por medio conexiones FTP y HTTP. Un ejemplo prctico para la utilizacin de esta herramienta podra ser: Imagina que tiene una gran cantidad de imgenes que necesita publicar en su servidor. Puede utilizar un cliente FTP y subir una por una (inclusive cuando utiliza batchs o ejecucin por lotes desde su herramienta FTP, los archivos son transferidos uno por uno) podra generar un archivo comprimido con todas las imgenes, publicar el archivo y luego descomprimirlo en el servidor. El problema radica, en que no existe la funcionalidad de descompresin de archivos por medio de FTP, en este punto es donde entra a relucir SSH. Una vez se haya conectado al servidor por medio de SSH, usted slo necesitar escribir en la lnea de comandos unzip filename.zip y listo, el archivo ser descomprimido en el servidor. Por medio de SSH, podr ejecutar comandos remotamente, los cuales sern ejecutados en el servidor.

Cmo usar ssh para conectarse a su hostingPara poder hacer uso de SSH, lo primero que se necesita es un cliente SSH, este es un software que corre localmente en su computador y le permite conectarse al servidor por medio de SSH, ejecutar comandos y guardar toda la informacin referente a la conexin. Una herramienta muy conocida (y reconocida) que sirve como cliente SSH es puTTY, la cual es gratis y se puede obtener desde: http://www.chiark.greenend.org.uk/~sgtatham/putty/ Despus de instalar la herramienta, simplemente haga doble clic sobre el archivo ejecutable, como con cualquier programa Windows. Al iniciar, se mostrar una ventana para especificar toda la informacin de la conexin:Host Name y port. Nombre del servidor y nmero de puerto respectivamente. No todos los hosting permiten conectarse mediante shh. Como normageneral slo lo permiten los servidores dedicados y los VPS . Despus de ingresar la informacin, presione la opcin para conectar. Al conectarse al servidor, el programa lanzar una ventana de lnea de comandos donde se le solicita un usuario y clave para conectarse al servidor.

Al ingresar los datos y presionar enter, la lnea de comandos estar lista realizar todo lo que necesite por medio de SSH. Como si estuviera delante de su servidor.