Servidor SSH en GNU/Linux


>>> print “Hola mundo =)”

El día de hoy traigo un articulo en el cual vamos a aprender a instalar un servidor SSH en Ubuntu(valido para S.O.s derivados de Debian) Aunque pienso en otros sistemas sea igual de fácil simplemente con cambiar algunos aspectos relacionados a comandos principales de cada S.O.

Primero que todo : Qué es SSH?

Severa suciedad humana?… amm  no, creo que no… para ello mejor vamos a una definición de la wikipedia:

SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.

Mas información: http://es.wikipedia.org/wiki/Secure_Shell

Vamos a dejar un poco lo técnico y explicar en un contexto comprensible lo que es y para que nos puede servir.

SSH es un protocolo como lo es HTTP, FTP, HTTPs, etcétera con el cual podemos transferir datos por medio de TCP, como se darán cuenta todos esos protocolos son usados en la Internet principalmente en navegadores para la visualización de paginas web o descarga de archivos.

La diferencia que SSH tiene en cuanto a otros protocolos es que como su nombre lo indica se maneja a través de una “Shell” esta interfaz principalmente usada en Sistemas Unix y GNU/Linux es manejada por medio de comandos.

Incluyendo que se maneja a través de Terminal(o Shell) podremos ver únicamente texto plano, pero esto nos sirve principalmente para:

  • Administrar Servidor remoto.
  • Transferencia de archivos desde un ordenador remoto.
  • Conexiones a través de LAN o Internet.
  • Conexiones seguras y rápidas.
  • Administración total de ordenador.
  • Backups(Respaldos) remotos.

Esas serian algunas de las funciones principales y que mas sentido tendrían a la hora de usar este tipo de servidor/protocolo.

Ahora, que nos ofrece SSH aparte de lo anterior?, principalmente es seguridad, se habla que SSH es el precursor del desfasado Telnet el cual tiene características similares de cliente/servidor que posee SSH pero sin encriptacion(solo texto plano) a la hora de enviar datos. He aquí donde SSH sale a luz con una encriptacion mas difícil de romper al autentificar usuario y contraseña así como el envió seguro de datos, archivos, etcétera.

Vamos a ver a continuación unos gráficos que harán comprender mas la seguridad comparada entre Telnet y SSH:

* Seguridad en protocolo Telnet

* Seguridad en protocolo SSH

Como pudieron observar no tiene mucha ciencia, pero si nos es bastante benéfico a la hora de transmitir datos:

Computador <—> Computador

Servidor <—> Servidor

Servidor <—> Computador

Computador <—> Servidor

Que a final de cuentas todo vendría siendo lo mismo ya que cualquiera de los dos o los dos podrían ser un servidor o cliente.

Bien pues ya que tenemos algunos conocimientos de SSH y un poco de teoría necesaria, mas que nada para satisfacción propia. Ahora vamos a instalar un servidor SSH en Ubuntu:

En este caso usaremos OpenSSH el cual su pagina oficial es: http://www.openssh.org/.

Hay varias formas de instalarlo.

  • Descargando desde WEB
  • En derivados de Debian con el comando Aptitude install openssh-server
  • En otros sistemas sera similar, recomiendo buscar información según sea el caso y verificar el Administrador de paquetes de dicho S.O. que se utilice.

Optare por la segunda opción ya que para mi es la mas viable y cómoda:

Abrir un terminal[Aplicaciones > Accesorios > Terminal] para instalar el servidor SSH. Teclearemos lo siguiente:

sudo aptitude install openssh-server

Bien pues ya tendremos instalado el Servidor ahora procederemos a hacer algunas pruebas.

Para verificar que esta correctamente instalado tecleamos lo siguiente en terminal:

ssh 127.0.0.1

Al ejecutar el comando anterior lo que haremos sera crear una conexión SSH con la IP 127.0.0.1. El cual nos devolverá algo parecido a esto:

irving@127.0.0.1’s password:

Es ahí donde introduciremos nuestra contraseña de usuario para poder conectar con el servidor. Acto seguido se vera algo similar a:

Linux Prog 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:24:04 UTC 2010 i686 GNU/Linux

Ubuntu 10.04.1 LTS

irving@Prog:~$


Donde el prompt(irving@Prog:~$) estará listo para recibir ordenes las cuales se ejecutaran en el servidor.

De esta forma ya  podemos conectar mediante SSH de “Linux a Linux“, otra cosa que tenemos que tomar en cuenta es que el router tras el que nos encontremos tenga el puerto 22 habilitado o por consecuencia habilitar conexiones para “Sevidor SSH” de igual forma habilitada la IP publica.

Esto para que haya conexión desde cualquier parte del mundo a través de Internet y no de una Red LAN parecida a cuando comprobamos la funcionalidad del server.

En mi caso tengo un modem thomson tg585v7 a continuación una captura:

(Clic en la imagen para agrandar)

Para crear una conexión al servidor SSH a través de Internet tendremos que estar en una maquina, bien que tenga un Sistema Unix o GNU/Linux, también podemos hacer conexiones desde Windows mediante un programa como PuTTY pero eso lo dejare para otra entrada con motivo de que esta no se haga mas extensa.

Ahora, vamos a ver algunos comandos que serán útiles para transferir archivos de servidor a cliente o viceversa. Recomiendo leer el manual de scp ejecutando el siguiente comando:

man scp

Vamos a ver dos situaciones, una en la que conocemos la ubicación y nombre del archivo que se encuentra en el servidor y otra en la que no lo conocemos por ende lo buscaremos.

scp irving@127.0.0.1:/home/irving/archivo_servidor /home/irving/archivo_local

  • Usaremos el comando SCP el cual tiene la misma función que el común CP(copy) de GNU/Linux a diferencia de que SCP cifra los archivos lo cual lo hace mas seguro.
  • Ver que se usa el nombre de usuario con el que haremos login en mi caso “irving”@ la dirección del servidor en este caso como es una prueba lo hice por medio de localhost “127.0.0.1” el cual se puede remplazar por la dirección del servidor.

    ssh 127.0.0.1

  • Ahora en el caso de no conocer la dirección del archivo o no conocer el nombre exacto servirá lo siguiente: Podemos usar tanto el comando cp o scp debido a que estaremos manejándonos entre directorios.
  • Introduciremos nuestra contraseña y procederemos a navegar por los directorios desde la terminal, con comandos como “cd”, “dir”, etcétera creo que esto gran parte de usuarios lo conocerá.

    Al tener localizado el archivo podremos usar tanto cp como scp a continuación los ejemplos:

    scp /home/irving/archivo_servidor /home/irving/archivo_local

    0

    cp /home/irving/archivo_servidor /home/irving/archivo_local

    Nota: Observar que hay un espacio entre el origen y destino del archivo.

    Podemos ejecutar muchísimos mas comandos pero eso ya sera cuestión de las necesidades que cada uno tenga.

    Algo interesante en Ubuntu, es que si solo queremos copiar archivos, Ubuntu cuenta con un cliente SSH(también ftp, http, https, etcétera)  que funciona a través de nautilus bastante útil. Para activarlo ir a Lugares > Conectar con el servidor

    * Con esos parámetros funciona perfecto. El puerto por defecto es 22

    Seguido de ello nos pedirá la contraseña para conectar con el servidor y listo estaremos viendo las carpetas y archivos del servidor a través de nautilus.

    Pues esto ha sido todo, espero les sea lo bastante útil para tener su propio servidor con una conexión segura en otro articulo les estaré hablando de como conectarse desde un ordenador con Windows.

    Conectar a servidor SSH desde Windows

    Conectar a servidor SSH desde Windows[2]

    Hasta la próxima =)

    Recomiendo leer los siguientes enlaces:

    Manual SSH | Servidor SSH

    Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

    9 Responses to “Servidor SSH en GNU/Linux”


    1. 1 rafael 28 noviembre, 2013 a las 12:08 pm

      Al ingresar y pedirme la contraseña se supone que es la del root y la pongo y me dice Permissuin denied

      Y la ruta que me da es

      Root@127.0.0.1

      Alguien sabe por?

    2. 2 LåN 17 marzo, 2013 a las 12:02 pm

      Hello, Neat post. There is a problem together with your website in web explorer, would test this?
      IE still is the market chief and a huge component to other people will omit your excellent writing because of this problem.

    3. 3 Elias 11 marzo, 2013 a las 11:24 am

      Hola buenas; tengo un pequeño problema, tengo un servidor linux debian, que me da servicio a un correo seguro, desde el Gosa creo al nuevo usuario, luego lo confirmo en el horde pero no me genera la casilla de entrada, el inbox, puedo redactar un correo pero no puedo recibirlo, que problema puedo tener?

    4. 4 walter 22 julio, 2012 a las 10:58 pm

      hola, tengo un problema, cuando instalo el server y dsp quiero entrar al localhost, me sale este mensaje: ssh: connect to host 127.0.0.1 port 22: Connection refused …

      Que hago???

    5. 5 Anónimo 27 diciembre, 2011 a las 8:34 pm

      hola, acabo de instalar en un pc viejito P4 el S.O karmic koala para usarlo como servidor, este equipo lo tengo conectado a un router , esta conexion al revisarla con el comando ifconfig me muestra la direccion ip asignada a l equipo 192.168.x.xxx, ahora al tratar de conectarme desde otro equipo conectado al router mediante putty , me indica conexion fallida.
      en putty ingreso la direccion ip asignada al servidor, puerto 22 , selecciono ssh, pero la conexion no entra.
      que problema puedo tener
      pueden orientarme.

      gracias

    6. 6 Sajhu 1 diciembre, 2010 a las 11:10 pm

      hola! que buenos articulos, tengo una pregunta, si tengo un servidor remoto, en el cual tengo acceso SSH, cómo puedo mandarle un programa al servidor, instalarlo y correrlo. (es un programa liviano que sirbe de cliente de broadcast de audio -shoutcast-. si me das alguna luz en esto telo agradeceria inmensamente.

      • 7 Irving Prog 3 diciembre, 2010 a las 9:37 am

        Hola Sajhu.

        Primeramente Gracias por visitar el blog. Mandarle un programa al servidor, supongo que es un servidor Linux. Ahora una parte importante que distro es? si usa algún tipo de paquete de datos por ejemplo .deb o rpm puedes enviar el binario e instalarlo.

        O bien en todo caso ejecutar por medio de un comando la instalación del programa en servidor.

        sudo aptitude install xprograma
        yum install xprograma

        Dependiendo el S.O. que sea.

        Ahora que si no puedes de ninguna de esas formas, la otra seria enviar el código fuente con un comando, de alguna forma estarías transfiriendo desde el cliente al servidor, para después, compilar, instalar, y ejecutar en el servidor. Esto me parece te sera útil:

        Usa scp que es muchisimo mas simple.
        la onda seria la siguiente:

        Código:
        scp usuario@host:/ruta_del_archivo/archivo.tar.gz /ruta_del_archivo_en_tu_pc/archivo.tar.gz
        Si lo que queres es a la inversa, o sea, enviar un archivo a otra pc, tenes que poner primero la ruta del archivo en tu pc, y luego el host.
        Es como conectarse via ssh, solo que para transferencia de archivos.
        Nos vemos

        Espero haberte ayudado en algo, si no, nos podemos contactar por algún medio de mensajería instantánea o correo.

        Skype: irving1235
        (Los correos se encuentran en la pagina de contacto)


    1. 1 Conectar a servidor SSH desde Windows[2] « Trackback en 24 septiembre, 2010 a las 3:23 pm
    2. 2 Conectar a servidor SSH desde Windows « Trackback en 21 septiembre, 2010 a las 9:15 pm

    Responder

    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




    Sígueme en..

    IRAN PCs

    Ubuntu

    The next version of Ubuntu is coming soon

    Archivo

    free counters

    Wikio – Top Blogs – Linux

    Free Software Top

    A %d blogueros les gusta esto: