Come posso accedere al mio telefono Ubuntu su ssh?


16

Ogni volta che provo a eseguire apt-get install openssh-serverottengo i seguenti errori:

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.

Esattamente lo stesso errore
user195123

Stesso errore per me fare la stessa cosa - Ubuntu 11.04.
Malee,

1
@Malee 11.04 è la fine della vita, non è possibile ottenere aiuto per 11.04 qui per questo. Esegui l'aggiornamento alla versione 12.04 o successiva o a una versione supportata, quindi possiamo aiutarti a risolverlo.
Thomas Ward

1
Ubuntu touch non ha ancora il centro software e l'aggiornamento è solo terminale, cosa che non ho fatto mentre cercavo di installare openssh.
user195123

Ok, dato che non ho ancora cambiato troppo, pensi che formattare il mio archivio e riflettere Ubuntu aiuti?
user195123

Risposte:


27

Con la versione finale ufficiale Ubuntu per telefoni viene fornito lo strumento "android-gadget-service" con il quale è possibile gestire adb, mtp, tethering USB e ssh.

Connetti il ​​tuo dispositivo tramite USB, abilita la modalità sviluppatore in:

"Impostazioni di sistema-> Informazioni su questo telefono-> Modalità sviluppatore"

... ed esegui (dal tuo PC, assicurati di avere lo schermo del telefono sbloccato, altrimenti adb rifiuterà di farti entrare):

adb shell android-gadget-service enable ssh

Copia la tua chiave pubblica sul telefono:

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

Ora puoi cercare il tuo IP sul telefono e usare ssh per connetterti:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>

Funziona alla grande, ma l'ultimo comando non mostrerà alcun IP se l'interfaccia di rete non è nominata wlan0. Il mio è stato wlan2per qualche motivo.
Cos64,

Il comando: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Mi dà: impossibile stat '/home/tenleftfingers/.ssh/id_rsa.pub': Nessun file o directory del genere
TenLeftFingers

Non c'è bisogno di Modalità sviluppatore o di rendere l'immagine scrivibile. Vedi SSH Ubuntu Touch per una soluzione semplice e funzionante. Come sempre con l'autenticazione senza password, è necessario posizionare un /home/phablet/.ssh/authorized_keysfile (con una chiave pubblica del PC in uso per accedere al dispositivo Ubuntu Touch) sul dispositivo. L'esecuzione ssh -v phablet@<ip-address>(dettagliata) aiuta a eseguire il debug dei problemi di accesso o autorizzazione.
Peterino,

@orga Trasmette con zeroconf (avahi-daemon)? In questo modo posso vedere il mio dispositivo su nautilus e trasferire file su sftp.
Khurshid Alam,

Ho anche dovuto aggiungere i permessi: chmod ow ~ /
Mantas Vaitkūnas il

17

Per attivare l'accesso ssh interamente tramite Wi- Fi , senza modalità sviluppatore sul telefono, senza strumenti speciali sul computer e senza usare USB :

  1. Se non hai già una coppia di chiavi ssh, digita ssh-keygensul tuo computer e segui le istruzioni per generarne una.
  2. Installa l'app Terminale sul telefono dall'App Store.
  3. Apri un Terminale e digita (questo è più facile con il telefono in orientamento orizzontale):

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

    (l'ultimo comando si bloccherà; questo è previsto)

  4. Cerca l'indirizzo IP del tuo telefono nel Terminale come restituito dal ip addrcomando sopra.

  5. Sul computer, digitare (sostituendo 192.0.2.1con l'indirizzo IP del telefono dall'alto):

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

    In caso di successo, l'ultimo comando sul Terminale del telefono ora avrà esito positivo.

  6. Sul tuo computer, digita (di nuovo sostituendo 192.0.2.1con l'indirizzo IP del telefono dall'alto):

    ssh phablet@192.0.2.1
    
  7. Se l'indirizzo IP del telefono cambia, sarà necessario utilizzarlo ip addrnuovamente nell'app Terminale sul telefono e regolare di conseguenza il comando ssh.


3
Risposta molto istruttiva in quanto elimina la shell adb e il cavo USB. Due pollici in su!
Acrobazie dal

Anzi Risposta molto utile. +2
zloster,

@ogra (chissà meglio di me) mi dice che è stato sudo android-gadget-service enable sshsostituito sudo setprop persist.service.ssh truee che invece dovrebbe essere usato, ma non l'ho provato.
Robie Basak,

1
Questa dovrebbe essere la risposta migliore poiché con BQ Aquarius 5 il telefono non può essere scoperto con il metodo Android.
Kat Amsterdam,

14

Il server OpenSSH è ora (dal 13 settembre 2013) precaricato con l' installazione di Ubuntu Touch . Tuttavia, è anche disabilitato per impostazione predefinita . Inoltre, non vuoi che SSH operi da root .


È necessario digitare quanto segue, utilizzando una connessione USB al dispositivo:

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

Per tornare a disabilitato

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

AGGIORNAMENTO: (09-mar-2014)

La risposta sopra non è più attuale.

  • A partire dall'inizio di marzo 2014, mentre il file /etc/init/ssh.overrideesiste ancora, modificando il suo contenuto non è possibile eseguire SSH (in realtà il demone sshd ) all'avvio.

  • Le build recenti (testate per 226 , ma forse prima) ora supportano un nuovo meta-flag persist.service.ssh , per consentire a SSH ( demone sshd ) di riavviarsi all'avvio.

Ottieni il prompt dei comandi (sul dispositivo)

adb shell
su - phablet

Avviare SSH e impostare il flag

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

Riavvia il dispositivo

sudo reboot

Il demone SSH dovrebbe avviarsi automaticamente

sudo service ssh status

Per disabilitare l'avvio automatico di SSH, cambia il flag:

sudo setprop persist.service.ssh false

perché devi fare tutto sudo dopo essere andato su -?
Polpo,

1
La linea su - phabletcambia l' utente in phablet , non in superutente. In genere è buona norma utilizzare il privilegio minimo , in modo da essere meno vulnerabile agli attacchi.
david6,

questa risposta deve essere aggiornata, guarda @ ogra's
sergiusens

1
Sarà necessario rivedere e provare prima questo metodo.
david6,


0

Installa Ubuntu SDK e fai clic su "Apri connessione SSH esegui il dispositivo" nel pannello dei dispositivi. Bonus: non resisterai alla scrittura di un nuovo Scope ...


0

Ho appena trovato un modo più veloce (veloce e sporco) (Attenzione: non è sicuro!) :

1) Installa l'app del terminale e aprila

2) passa alla radice

sudo su

(inserisci la password per il blocco dello schermo)

2) Immettere i seguenti comandi:

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

Ora il tuo server SSH è in esecuzione e accetterà il tuo codice di blocco dello schermo come password! Attenzione: ora è molto semplice la forza bruta! Modifica immediatamente le tue impostazioni (ora puoi farlo in modo comodo, dopo esserti connesso via ssh dal tuo PC).

Poiché esegui sshd manualmente, il file /etc/init/ssh.override non viene più applicato ...

Quindi per connetterti dal tuo PC:

ssh phablet@x.x.x.x

dove xxxx è un indirizzo IP del tuo telefono, che puoi trovare digitando

ifconfig

nel terminale del telefono.

Godere!

AGGIORNAMENTO : potrebbe essere che, dopo l'aggiornamento, sshd non riesca ad avviarsi perché non può aprire le chiavi host, quindi rigenerarle:

/usr/bin/ssh-keygen -A

Se fallisce perché manca / var / run / sshd, basta crearlo:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.