Acceder a repositorios en Debian, Ubuntu o derivados por SSH y no por HTTP/FTP

Lo más normal del mundo es que configuremos nuestros repos en Debian, Ubuntu o derivados apuntando a los repos oficiales por HTTP o FTP, o sea, yo edito el archivo /etc/apt/sources.list y pongo algo como esto:

deb http://repos.mired.net/ubuntu-precise/ precise universe multiverse restricted

O con Debian:

deb ftp://repos.mired.net/debian/wheezy/ wheezy main contrib non-free

Y esto está bien, no tiene nada erróneo.

El asunto es que a veces necesitamos actualizar e instalar software en un ordenador de casa o por ejemplo, en un servidor de nuestra empresa, y necesitamos hacer esto sin muchas complicaciones, sin necesidad de tener que instalar un servidor web (Apache, Nginx, etc) en el server FTP nuestro (actualizar desde internet queda descartado muchas veces pues consume ancho de banda y tiempo, además, al usar el navegador para buscar la ruta del repositorio nos podemos entretener con algún tipo de anuncios gratis), necesitamos actualizar y listo, no tener que instalar Apache o pure-ftpd ni mucho menos… para ello podemos usar SSH.

SSH es la forma en que controlamos nuestros ordenadores remotamente, es un servicio que viene instalado por default en cada servidor, pues bien, para indicarle a X servidor/ordenador que deberá usar los repos ubicados en el servidor Y, configuramos nuestro /etc/apt/sources.list de la siguiente forma:

deb ssh://root@repos.mired.cu:/var/www/ftp/repos/debian/wheezy/ wheezy main contrib non-free

Como pueden ver, se mantiene el deb del inicio, luego cambiamos http/ftp por ssh, seguido del usuario con el cual se accederá y el servidor al cual se accederá, luego le indicamos exactamente la ubicación del repositorio usando :/ruta como se muestra en la línea, luego ya nos queda lo de siempre, la versión de la distro y las ramas del repo.

Luego queda lo de toda la vida:

apt-get update

Y ahí es donde no se actualizará de forma automática, o sea, al indicarle al sistema que use ese repositorio por SSH el sistema les preguntará si desean añadir a los servidores conocidos SSH a este nuevo, le indican que sí escribiendo yes y presionando Enter, luego les pedirá el password de root y al ponerlo ya empezará el proceso de actualización de los índices, que es lo que indicaron 🙂

Esto me ha sido realmente útil, pues mi servidor virtual lo tengo configurado así (uso Arch, pero mi servidor virtual usa Debian), igual ahorra montón de trabajo o ancho de banda no? 🙂

En fin… que espero esto les haya resultado de utilidad 😀

Saludos


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   FIXOCONN dijo

    Un compañero de trabajo de acá te dirías «eres un tigre»
    gracias por el post se ve hecho a la medida para nosotros (.cu)

  2.   neo61 dijo

    Vaya, que bien. Un gran aporte como todos los que publicas. quisiera una ayuda y es respecto a la actualización de un repo desde home, ¿como se debe estructurar la linea en ese caso del sources.list?

    1.    KZKG^Gaara dijo

      Suponiendo que el repo esté en /home/neo/Linux/debian-repo sería:

      deb ssh://root@mipc:/home/neo/Linux/debian-repo/ wheezy main contrib non-free

      1.    neo61 dijo

        Disculpa la tardanza, no había marcado para que se me notificara por mail, gracias compañero por tus aportes y explicación. Como diría algún mexicano de «padre guey»

  3.   jc852654 dijo

    Tengo mi archivo sources.list en sources.list.d
    de la siguiente manera:

    #Poner este archivo en /etc/apt/sources.list.d/

    #SSH-Inicio del archivo /etc/apt/sources.list para máquinas de escritorio o lap$
    deb ssh://c3uz@VODK:/media/USBDEB/debian/debian/ wheezy main contrib non-free
    deb-src ssh://c3uz@VODK:/media/USBDEB/debian/debian/ wheezy main contrib non-f$

    deb ssh://c3uz@VODK:/media/USBDEB/debian/debian/ wheezy-updates main contrib n$
    deb-src ssh://c3uz@VODK:/media/USBDEB/debian/debian/ wheezy-updates main contr$

    deb ssh://c3uz@VODK:/media/USBDEB/debian/debian-security/ wheezy/updates main $
    deb-src ssh://c3uz@VODK:/media/USBDEB/debian/debian-security/ wheezy/updates m$

    #Backports
    deb ssh://c3uz@VODK:/media/USBDEB/debian/debian-backports/ wheezy-backports mai$

    #SSH-Multimedia
    deb ssh://c3uz@VODK:/media/USBDEB/debian/debian-multimedia/ wheezy main non-free

    #Iceweasel-realease
    deb ssh://c3uz@VODK:/media/USBDEB/debian/debian-mozilla/ wheezy-backports icewe$

    #Fin del archivo /etc/apt/sources.list

    Pero no me funciona totalmente.
    Puedes ayudarme

    esta es la salida al ejecutar «# aptitude update»
    Ign ssh://c3uz@VODK wheezy-backports Release.gpg
    Hit ssh://c3uz@VODK wheezy Release.gpg
    Ign ssh://c3uz@VODK wheezy-backports Release.gpg
    Ign ssh://c3uz@VODK wheezy-backports Release
    Hit ssh://c3uz@VODK wheezy Release
    Ign ssh://c3uz@VODK wheezy-backports Release
    Hit ssh://c3uz@VODK wheezy/main amd64 Packages
    Hit ssh://c3uz@VODK wheezy/non-free amd64 Packages
    Hit ssh://c3uz@VODK wheezy/main Translation-en
    Hit ssh://c3uz@VODK wheezy/non-free Translation-en
    Ign ssh://c3uz@VODK wheezy/main Translation-es
    Err ssh://c3uz@VODK wheezy-backports/main amd64 Packages
    Fichero no encontrado
    Err ssh://c3uz@VODK wheezy-backports/contrib amd64 Packages
    Fichero no encontrado
    Err ssh://c3uz@VODK wheezy-backports/non-free amd64 Packages
    Fichero no encontrado
    Ign ssh://c3uz@VODK wheezy-backports/contrib Translation-es_ES
    Ign ssh://c3uz@VODK wheezy-backports/contrib Translation-es
    Ign ssh://c3uz@VODK wheezy-backports/contrib Translation-es_SV
    Ign ssh://c3uz@VODK wheezy-backports/contrib Translation-en
    Ign ssh://c3uz@VODK wheezy-backports/main Translation-es_ES
    Ign ssh://c3uz@VODK wheezy-backports/main Translation-es
    Ign ssh://c3uz@VODK wheezy-backports/main Translation-es_SV
    Ign ssh://c3uz@VODK wheezy-backports/main Translation-en
    Ign ssh://c3uz@VODK wheezy-backports/non-free Translation-es_ES
    Ign ssh://c3uz@VODK wheezy-backports/non-free Translation-es
    Ign ssh://c3uz@VODK wheezy-backports/non-free Translation-es_SV
    Ign ssh://c3uz@VODK wheezy-backports/non-free Translation-en
    Err ssh://c3uz@VODK wheezy-backports/iceweasel-release amd64 Packages
    Fichero no encontrado
    Ign ssh://c3uz@VODK wheezy-backports/iceweasel-release Translation-es_ES
    Ign ssh://c3uz@VODK wheezy-backports/iceweasel-release Translation-es
    Ign ssh://c3uz@VODK wheezy-backports/iceweasel-release Translation-es_SV
    Ign ssh://c3uz@VODK wheezy-backports/iceweasel-release Translation-en

    1.    jc852654 dijo

      Esta es la estructura en el disco duro USB del cual estoy sacando los datos
      ├── debian
      │   ├── debian
      │   │   ├── dists
      │   │   │   ├── oldstable -> squeeze
      │   │   │   ├── squeeze
      │   │   │   ├── stable -> wheezy
      │   │   │   └── wheezy
      │   │   ├── pool
      │   │   │   ├── contrib
      │   │   │   ├── main
      │   │   │   └── non-free
      │   │   └── project
      │   │   └── trace
      │   ├── debian-backports
      │   │   └── dists
      │   │   └── squeeze-backports
      │   ├── debian-mozilla
      │   │   └── dists
      │   │   ├── squeeze-backports
      │   │   └── wheezy-backports
      │   ├── debian-multimedia
      │   │   ├── dists
      │   │   │   ├── oldstable -> squeeze
      │   │   │   ├── squeeze
      │   │   │   ├── stable -> wheezy
      │   │   │   └── wheezy
      │   │   ├── pool
      │   │   │   ├── main
      │   │   │   └── non-free
      │   │   └── project
      │   │   └── trace
      │   └── debian-security
      │   ├── dists
      │   │   ├── squeeze
      │   │   └── wheezy
      │   ├── pool
      │   │   └── updates
      │   └── project
      │   └── trace