¿Cómo puedo acceder a mi teléfono Ubuntu a través de ssh?

16

Cada vez que intento ejecutar apt-get install openssh-serverme salen los siguientes errores:

root@ubuntu-phablet:/home/hablet# apt-get install openssh-server
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to write to /var/cache/apt
E: The package lists or status file could not be parsed or opened.
user195123
fuente
Exactamente el mismo error
user195123
El mismo error para mí haciendo lo mismo: ubuntu 11.04.
Malee
1
@Malee 11.04 es el final de la vida, no puedes obtener ayuda para 11.04 aquí por eso. Actualice a 12.04 o más reciente, oa una versión compatible, y luego podemos ayudarlo a solucionarlo.
Thomas Ward
1
Ubuntu touch aún no tiene el centro de software y la actualización es solo terminal, lo que no hice cuando intenté instalar openssh.
user195123
Ok, ya que aún no cambié demasiado, ¿crees que formatear mi almacenamiento y actualizar ubuntu ayuda?
user195123

Respuestas:

27

Con el lanzamiento oficial final, Ubuntu for Phones incluye la herramienta "android-gadget-service" con la que puede administrar adb, mtp, conexión USB y ssh.

Conecte su dispositivo a través de USB, habilite el Modo de desarrollador en:

"Configuración del sistema-> Acerca de este teléfono-> Modo desarrollador"

... y ejecuta (desde tu PC, asegúrate de tener la pantalla del teléfono desbloqueada, de lo contrario, adb se negará a dejarte entrar):

adb shell android-gadget-service enable ssh

Copie su clave pública al teléfono:

adb shell mkdir /home/phablet/.ssh
adb push ~/.ssh/id_rsa.pub /home/phablet/.ssh/authorized_keys
adb shell chown -R phablet.phablet /home/phablet/.ssh
adb shell chmod 700 /home/phablet/.ssh
adb shell chmod 600 /home/phablet/.ssh/authorized_keys

Ahora puede buscar su IP en el teléfono y usar ssh para conectarse:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>
ogra
fuente
Funciona muy bien, pero el último comando no mostrará IP si la interfaz de red no tiene nombre wlan0. La mía fue wlan2por alguna razón.
Cos64
El comando: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Me da: no puede stat '/home/tenleftfingers/.ssh/id_rsa.pub': No existe tal archivo o directorio
TenLeftFingers
No es necesario el modo de desarrollador ni hacer que la imagen se pueda escribir. Vea SSH Ubuntu Touch para una solución fácil y funcional. Como siempre con la autenticación sin contraseña, debe colocar un /home/phablet/.ssh/authorized_keysarchivo (con una clave pública de la PC que está utilizando para acceder al dispositivo Ubuntu Touch) en su dispositivo. Ejecutar ssh -v phablet@<ip-address>(detallado) ayuda a depurar problemas de inicio de sesión o permisos.
Peterino
@orga ¿Transmite con zeroconf (avahi-daemon)? De esa manera puedo ver mi dispositivo en nautilus y transferir archivos a través de sftp.
Khurshid Alam
También tuve que agregar permisos: chmod ow ~ /
Mantas Vaitkūnas
17

Para activar el acceso ssh completamente a través de wifi , sin el modo de desarrollador en el teléfono, sin herramientas especiales en su computadora y sin usar USB :

  1. Si aún no tiene un par de claves ssh, escriba ssh-keygenen su computadora y siga las instrucciones para generar uno.
  2. Instale la aplicación Terminal en el teléfono desde App Store.
  3. Abra una Terminal y escriba (esto es más fácil con el teléfono en orientación horizontal):

    sudo setprop persist.service.ssh true
    mkdir -pm700 ~/.ssh
    ip addr
    nc -l 1234 > ~/.ssh/authorized_keys
    

    (el último comando se bloqueará; esto se espera)

  4. Busque la dirección IP de su teléfono en el Terminal tal como lo devuelve el ip addrcomando anterior.

  5. En su computadora, escriba (reemplazando 192.0.2.1con la dirección IP de su teléfono desde arriba):

    nc 192.0.2.1 1234 < ~/.ssh/id_rsa.pub
    

    Si tiene éxito, el último comando en la Terminal de su teléfono ahora tendrá éxito.

  6. En su computadora, escriba (nuevamente reemplazando 192.0.2.1con la dirección IP de su teléfono desde arriba):

    ssh [email protected]
    
  7. Si la dirección IP de su teléfono cambia, deberá volver a usar ip addrla aplicación Terminal en su teléfono y ajustar su comando ssh en consecuencia.

Robie Basak
fuente
3
Respuesta muy informativa, ya que elimina el adb shell y el cable USB. ¡Dos pulgares arriba!
Acrobacias
De hecho, una respuesta muy útil. +2
zloster
@ogra (quién sabe mejor que yo) me dice que sudo android-gadget-service enable sshsuperó sudo setprop persist.service.ssh truey debería usarse en su lugar, pero no lo he probado.
Robie Basak
1
Esta debería ser la respuesta principal, ya que con el BQ Aquarius 5 el teléfono no se puede descubrir con el método de Android.
Kat Amsterdam
14

El servidor OpenSSH está ahora (a partir del 13 de septiembre de 2013) precargado con la instalación de Ubuntu Touch . Sin embargo, también está deshabilitado de forma predeterminada . Tampoco desea que SSH funcione desde la raíz .


Debe escribir lo siguiente, utilizando una conexión USB al dispositivo:

adb shell
su - phablet
sudo tee /etc/init/ssh.override < /dev/null

Para volver a deshabilitado

echo "manual" | sudo tee /etc/init/ssh.override

ACTUALIZACIÓN: (09-mar-2014)

La respuesta anterior ya no es actual.

  • A principios de marzo de 2014, mientras el archivo /etc/init/ssh.overridetodavía existe, cambiar su contenido no permite que SSH (en realidad el demonio sshd ) se ejecute al inicio.

  • Las compilaciones recientes (probadas para 226 , pero posiblemente antes) ahora admiten un nuevo meta-flag persist.service.ssh , para permitir que SSH ( sshd daemon) se reinicie al inicio.

Ir al símbolo del sistema (en el dispositivo)

adb shell
su - phablet

Inicie SSH y establezca la bandera

sudo service ssh start
sudo setprop persist.service.ssh true

Reiniciar el dipositivo

sudo reboot

El demonio SSH debería iniciarse automáticamente

sudo service ssh status

Para deshabilitar el inicio automático de SSH, cambie la bandera:

sudo setprop persist.service.ssh false
david6
fuente
¿Por qué necesitas sudo todo después de ir a su -?
Octopus
1
La línea su - phabletcambia al usuario a phablet , no a superusuario. En general, es una buena práctica utilizar el menor privilegio , para ser menos vulnerable a los ataques.
david6
esta respuesta necesita actualización, mira @ ogra's
sergiusens
1
Tendrá que revisar y probar ese método primero.
david6
0

Instale Ubuntu SDK y haga clic en "Abrir conexión SSH en el dispositivo" en el panel de dispositivos. Bonificación: no te resistirás a escribir un nuevo Alcance ...

Beernarrd
fuente
0

Acabo de encontrar una forma más rápida (rápida y sucia) (Atención: ¡no es segura!) :

1) Instale la aplicación de terminal y ábrala

2) cambiar a root

sudo su

(ingrese su contraseña de bloqueo de pantalla)

2) Ingrese los siguientes comandos:

echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "AllowUsers phablet" >> /etc/ssh/sshd_config
/usr/sbin/sshd

¡Ahora su servidor ssh se está ejecutando y aceptará su código de bloqueo de pantalla como contraseña! Atención: ¡ahora es muy fácil hacer fuerza bruta! Cambie su configuración de inmediato (ahora puede hacerlo de una manera cómoda, después de conectarse a través de ssh desde su PC).

Como ejecuta sshd manualmente, el archivo /etc/init/ssh.override ya no se aplica ...

Para conectarse desde su PC:

ssh [email protected]

donde xxxx es una dirección IP de su teléfono, que puede encontrar escribiendo

ifconfig

en la terminal de tu teléfono.

¡Disfrutar!

ACTUALIZACIÓN : podría ser que, después de la actualización, sshd no se inicie porque no puede abrir las claves del host, luego simplemente regenerarlas:

/usr/bin/ssh-keygen -A

Si falla porque falta / var / run / sshd, simplemente créelo:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
Andrey Sapegin
fuente