Acceso SSH y SFTP


  • Banned

    Hola a todos,

    Supongo que muchos ya sabréis cómo hacerlo, pero pongo cómo lo he hecho yo en mi BQ Ubuntu Edition:

    Lo primero que hay que hacer es crear una clave pública en la máquina desde la que vamos a acceder al BQ Ubuntu, mandarla por mail, copiarla y pegarla en un nuevo archivo /home/phablet/.ssh/authorized_keys. Si el directorio .ssh no existe hay que crearlo. Finalmente hay que iniciar el servicio SSH:

    Para iniciar el servidor:

    sudo /etc/init.d/ssh start

    Para parar el servidor:

    sudo /etc/init.d/ssh stop

    Para reiniciar el servidor:

    sudo /etc/init.d/ssh restart


    Y con esto ya tendríamos acceso tanto por SSH como por SFTP.


    Un saludo.



  • exelente aporte lo voy a probar esperemos que no la lie jajajaja


  • Banned

    Acuérdate que tienes que generar una clave pública en aquel equipo que vas a utilizar para acceder al BQ Ubuntu Edition por SSH/SFTP, si no no podrás.


    Otra cosa, cada vez que reinicies el BQ Ubuntu tendrás que levantar el servicio SSH de nuevo. Puedes meterlo en el arranque del sistema para que esté siempre levantado, aunque yo no te lo recomiendo, no es algo que vayas a usar las 24h y consume batería, no deja de ser un proceso levantado.

    Un saludo.



  • Hola,


    Una duda subre la conexion ssh.

    A parte de la conexión sin cables dentro de la misma red. Que ventajas se tiene de conectarse por 'ssh' en vez de 'adb shell'?



  • Banned

    Hola,

    Una duda subre la conexion ssh.

    A parte de la conexión sin cables dentro de la misma red. Que ventajas se tiene de conectarse por 'ssh' en vez de 'adb shell'?



    Hola @jesus_gascon, antes de nada decir que el protocolo SSH y el conjunto de herramientas adb son cosas muy diferentes.

    El protocolo SSH se usa en sistemas GNU y Unix para establecer conexión entre máquinas (no necesariamente de la misma red). Además de ser una conexión encriptada ofrece un abanico de posibilidades en la administración de sistemas que por ejemplo Telnet no tiene.

    Por otro lado adb sólo es un conjunto de herramientas de Android, que permite hacer algunas cosas (entre ellas conectarse a otra máquina), lo que quiere decir que si estamos bajo un sistema que no es Android (como es el caso de BQ Ubuntu Edition) no lo tendremos instalado. Que sea una pieza del SDK de Android no quiere decir que no lo podamos instalar en cualquier sistema GNU o Unix, si se puede, pero hay que hacerlo mediante un gestor de paquetes o compilándolo. De hecho, yo me lo he instalado en mi BQ Ubuntu Edition para probar algunas cosas.

    Conclusión: ¿Ventajas? En el mundo de la administración de sistemas se usa el protocolo SSH o RSH (no seguro) y a veces Telnet, para conectarse a otras máquinas. Evidentemente hay mas protocolos y métodos (XML-RCP, SOAP, RMI, JMS, MQ, etc), pero son mas complejos y no son la respuesta a tu pregunta 😉


    Un saludo.


  • ¿Podrías detallarnos los pasos que has omitido para generar las claves de SSH?
    Normalmente para conectarme entre los PCs de mi red siempre he usado openssh-server y nunca he tenido que hacer eso...

    Muchas gracias...


  • Banned

    kain_X_X dijo:
    ¿Podrías detallarnos los pasos que has omitido para generar las claves de SSH?
    Normalmente para conectarme entre los PCs de mi red siempre he usado openssh-server y nunca he tenido que hacer eso...

    Muchas gracias...
    Hola @kain_X_X, para generar una clave pública lo puedes hacer de varias maneras. Lo mas probable es que ya tengas una si tu sistema es GNU/Linux o MAC. Una manera de averiguarlo es mirando lo que tienes en el directorio .ssh dentro de tu home:

    sputnik.local./Users/xe26505 # ls -lrt .ssh
    -rw-r--r--  1 usuario  grupo   222 13 abr 17:59 id_rsa.pub
    -rw-------  1 usuario  grupo   963 13 abr 17:59 id_rsa
    -rw-r--r--  1 usuario  grupo  9780 13 abr 17:59 known_hosts

    Si no tienen ningún archivo o puedes crearlo con la utilidad ssh-keygen que viene en casi todos los sistemas GNU:

    $ ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/Users/mi_usuario/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /Users/mi_usuario/.ssh/id_rsa.
    Your public key has been saved in /Users/mi_usuario/.ssh/id_rsa.pub.
    The key fingerprint is:
    42:c1:5b:3f:b1:f1:52:42:ad:50:a1:93:6a:1c:8a:4c mi_usuario@localhost

    Donde /Users/mi_usuario/.ssh es el directorio en el que guardaremos nuestra clave pública. Te pedirá una passphrase o password para generar la clave pública. Espero haber aclarado tu duda, si no me dices.


    Un saludo.





  • Acabo de hacerlo.
    hago desde terminal en mi ordenador ssh-keygen (dejo el nombre y la frase de paso en blanco) copio los dos archivos generados y mi known_host  y los copio en una carpeta en la que tengo permisos de escritura.

    Luego desde el móvil  hago cp -r y los vuelco en la carpeta .ssh

    Reinicio el servidor ssh mediante el comando

    sudo /etc/init.d/ssh restart

    Después desde el PC intento conectarme por ssh con:
    ssh phablet@192.168.0.20
     y me acaba saliendo el mensaje:
    Permission denied (publickey).

    (la dirección ip local es correcta...)

    😕



  • Banned

    Eso es por que el archivo de tu BQ Ubuntu Edition que contiene la clave pública del PC ha de ser este:  /home/phablet/.ssh/authorized_keys


    Cambia esto, reinicia el servicio SSH y prueba.


    Un saludo.



  • He tenido una mala semana...
    Acabo de probar, sigo en la misma.
    A ver si lo he entendido.
    Genero con el pc mediante el comando ssh-keygen.
    me saca un archiivo

    id_rsa

    Copio y pego el contenido de ese archivo en un archivo en blanco que se llame

    authorized_keys

    y lo pego en el móvil en la carpeta /home/phablet/.ssh/


    Después reinicio ambos servidores ssh mediante el comando restart


    Mismo fallo...

    Seguro que lo he entendido mal...


    Muchas gracias por cierto.


  • MVP

    Cuando generas la clave SSH hay 2 archivos: id_rsa / id_rsa.pub. El primer archivo es la clave privada (la que identifica a tu usuario) y no debe salir de tu PC. El segundo archivo es la clave pública que es la que distribuyes. Prueba a pasar el archivo .pub al teléfono con el nombre que estás usando.

    En cualquier caso, esa forma de conexión te evita poner la contraseña. Deberías poder conectarte igual pasando los datos de tu usuario a la conexión SSH.



  • Para asegurarme he borrado el directorio .ssh del teléfono.  Copio tal cual del ordenador al teléfono el id_rsa.pub
    en el directorio recien creado .ssh

    Intento conectarme al teléfono por ssh mediante:
    ssh phablet@192.168.0.20

    Mismo problema...
    La que os estoy dando...


  • MVP

    Pon el texto que contiene id_rsa.pub (la clave pública).



  • Ahora si, creo que voy a llorar.
    Es la primera vez que me toca hacer esto, y eso que me he conectado un montón de veces por ssh entre mis ordenadores con ubuntu... A lo sumo cuando he querido, he cambiado en el archivo de configuración el puerto por defecto y cosas así por seguridad 😕

    Estaría bien que pusierais arriba todos los pasos editando el tema principal:

    Lo que me habéis dicho que hiciera es lo siguiente.

    En el cliente (el ordenador) abrimos una terminal y escribimos: ssh-keygen
    Introducimos un nombre (lo podemos dejar en blanco)
    pulsamos enter.
    Introducimos clave de acceso
    pulsamos enter.
    Repetimos clave de acceso
    Otra vez enter.
    Si no hemos escrito nada, nos generará dos archivos:

    id_rsa ; id_rsa.pub
    El primero es la clave privada y el segundo la clave publica (pub...)

    Abrimos el contenido del archivo".pub" y creamos otro archivo de texto nuevo que se llame authorized_keys (sin extensión). Copiamos el contenido del archivo ".pub" en el de authorized_keys.
    Guardamos
    Pasamos ese archivo por USB a una carpeta de nuestro móvil.

    Abrimos una terminal en nuestro móvil. escribimos:
    cp -r /home/phablet/la_carpeta_donde_hallamos_guardado_el_archivo/authorized_keys /home/phablet/.ssh


    Esto último hay que hacerla porque la carpeta .ssh no es una carpeta visible por conexión USB.
    Ahora te puedes conectar en una red local por ssh mediante el comando:

    ssh phablet@IP_local_de_tu_telefono

    Si queréis añadir la clave publica de otro ordenador la añadís debajo como con la primera en el archivo authorized_keys


    Muchas gracias a todos, por cierto.



  • Por cierto, para los que utiliceis ubuntu podéis conectaros con interfaz gráfica (sin terminal) abriendo el navegador de archivos pinchando en "ir"--> "introducir lugar"--> ssh://phablet@_IP_local_del_telefono

    En Kubuntu en red pinchais en añadir carpeta de red, el tipo de carpeta es "shell segura (ssh)"
    Pinchais en siguiente.
    En nombre ponéis el nombre que queráis a vuestra carpeta, por ejemplo "móvil"
    Usuario: phablet
    servidor: la ip local del teléfono
    puerto: por defecto el 22
    protocolo: FISH
    carpeta: La carpeta en al que queráis entrar por defecto, por ejemplo el directorio raíz "/"
    codificación tal como está.
    Guardar y conectar...

    Un saludo.


  • MVP

    Si las cosas fueran sencillas sería muy aburrido :)). Lo importante es que ahora te conectas por SSH.

    Tendría que ver si está desactivado en el servidor de SSH la opción de conexión por login y password. En principio daría lo mismo usar un certificado que usar el login (aunque es más cómoda la primera opción.