Bagaimana saya bisa mengakses ponsel Ubuntu saya melalui ssh?

16

Setiap kali saya mencoba menjalankan apt-get install openssh-serversaya mendapatkan kesalahan berikut:

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.
pengguna195123
sumber
Kesalahan yang sama persis
user195123
Kesalahan yang sama untuk saya melakukan hal yang sama - ubuntu 11.04.
Malee
1
@Malee 11.04 adalah akhir hidup, Anda tidak bisa mendapatkan bantuan untuk 11,04 di sini karena itu. Tingkatkan ke 12,04 atau lebih baru, atau ke rilis yang didukung, dan kemudian kami dapat membantu Anda memperbaikinya.
Thomas Ward
1
Ubuntu touch belum memiliki pusat perangkat lunak dan pemutakhiran hanya terminal, yang saya tidak lakukan ketika saya mencoba menginstal openssh.
user195123
Ok karena saya belum berubah terlalu banyak, apakah Anda pikir memformat penyimpanan saya dan merefleksikan ubuntu membantu?
user195123

Jawaban:

27

Dengan rilis final resmi, Ubuntu untuk Ponsel mengirimkan alat "android-gadget-service" yang dengannya Anda dapat mengelola adb, mtp, USB tethering, dan ssh.

Hubungkan perangkat Anda melalui USB, aktifkan Mode Pengembang di:

"Pengaturan Sistem-> Tentang Telepon Ini-> Mode Pengembang"

... dan jalankan (dari PC Anda, pastikan layar ponsel tidak terkunci, jika tidak, adb akan menolak Anda masuk):

adb shell android-gadget-service enable ssh

Salin kunci publik Anda ke Telepon:

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

Sekarang Anda dapat mencari IP Anda di telepon dan menggunakan ssh untuk menghubungkan:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>
ogra
sumber
Bekerja dengan baik, tetapi perintah terakhir tidak akan menampilkan IP jika antarmuka jaringan tidak bernama wlan0. Punyaku wlan2untuk beberapa alasan.
Cos64
Perintah: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Memberi saya: tidak dapat stat '/home/tenleftfingers/.ssh/id_rsa.pub': Tidak ada file atau direktori seperti itu
TenLeftFingers
Tidak perlu untuk Mode Pengembang atau membuat gambar dapat ditulis. Lihat SSH Ubuntu Touch untuk solusi yang mudah dan berfungsi. Seperti biasa dengan otentikasi tanpa kata sandi, Anda perlu menempatkan /home/phablet/.ssh/authorized_keysfile (dengan kunci publik PC yang Anda gunakan untuk mengakses perangkat Ubuntu Touch) di perangkat Anda. Menjalankan ssh -v phablet@<ip-address>(verbose) membantu men-debug masalah masuk atau izin.
Peterino
@orga Apakah ini disiarkan dengan zeroconf (avahi-daemon)? Dengan begitu saya dapat melihat perangkat saya di nautilus dan mentransfer file melalui sftp.
Khurshid Alam
Saya juga harus menambahkan izin: chmod ow ~ /
Mantas Vaitkūnas
17

Untuk mengaktifkan akses ssh sepenuhnya melalui wifi , tanpa mode pengembang di ponsel, tanpa perkakas khusus di komputer Anda dan tanpa menggunakan USB :

  1. Jika Anda belum memiliki ssh keypair, ketik ssh-keygendi komputer Anda dan ikuti instruksi untuk membuatnya.
  2. Instal aplikasi Terminal di ponsel dari App Store.
  3. Buka Terminal dan ketik (ini lebih mudah dengan telepon dalam orientasi lanskap):

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

    (perintah terakhir akan hang; ini diharapkan)

  4. Cari alamat IP ponsel Anda di Terminal seperti yang dikembalikan oleh ip addrperintah di atas.

  5. Di komputer Anda, ketik (ganti 192.0.2.1dengan alamat IP ponsel Anda dari atas):

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

    Jika berhasil, perintah terakhir pada Terminal ponsel Anda sekarang akan berhasil.

  6. Di komputer Anda, ketik (ganti lagi 192.0.2.1dengan alamat IP ponsel Anda dari atas):

    ssh [email protected]
    
  7. Jika alamat IP ponsel Anda berubah, Anda harus menggunakan ip addraplikasi Terminal lagi di ponsel Anda dan menyesuaikan perintah ssh Anda.

Robie Basak
sumber
3
Jawaban yang sangat informatif seperti halnya shell adb dan kabel USB. Dua jempol!
Stunts
Memang jawaban yang sangat berguna. +2
zloster
@ogra (siapa yang tahu lebih baik dari saya) memberitahu saya bahwa sudo android-gadget-service enable sshdigantikan sudo setprop persist.service.ssh truedan harus digunakan sebagai gantinya, tapi saya belum menguji ini.
Robie Basak
1
Ini harus menjadi jawaban teratas karena dengan BQ Aquarius 5 telepon tidak dapat ditemukan dengan metode android.
Kat Amsterdam
14

Server OpenSSH sekarang (per 13-Sep-2013) telah dimuat sebelumnya dengan instalasi Ubuntu Touch . Namun, ini juga dinonaktifkan secara default . Anda juga tidak ingin SSH beroperasi dari root .


Anda perlu mengetik yang berikut ini, menggunakan koneksi USB ke perangkat:

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

Untuk kembali ke dinonaktifkan

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

UPDATE: (09-Mar-2014)

Jawaban di atas sudah tidak berlaku lagi.

  • Pada awal Maret 2014, sementara file /etc/init/ssh.overridemasih ada, mengubah isinya tidak memungkinkan SSH (sebenarnya sshd daemon) untuk dijalankan pada startup.

  • Build baru-baru ini (diuji untuk 226 , tetapi mungkin sebelumnya) sekarang mendukung meta-flag baru persist.service.ssh , untuk memungkinkan SSH ( sshd daemon) untuk memulai kembali pada startup.

Get to command prompt (di perangkat)

adb shell
su - phablet

Mulai SSH, dan atur bendera

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

Mulai ulang perangkat

sudo reboot

Daemon SSH harus mulai otomatis

sudo service ssh status

Untuk menonaktifkan SSH mulai otomatis, ubah tanda:

sudo setprop persist.service.ssh false
david6
sumber
mengapa Anda perlu melakukan sudo segalanya setelah su -?
Octopus
1
Baris su - phabletmengubah pengguna menjadi phablet , bukan super-user. Ini adalah praktik terbaik untuk menggunakan privilege paling sedikit , sehingga menjadi kurang rentan terhadap serangan.
david6
jawaban ini perlu diperbarui, lihat @ ogra's
sergiusens
1
Perlu meninjau dan mencoba metode itu terlebih dahulu.
david6
0

Instal Ubuntu SDK dan klik "Buka koneksi SSH lakukan perangkat" di panel perangkat. Bonus: Anda tidak akan menolak untuk menulis Lingkup baru ...

Beernarrd
sumber
0

Saya baru saja menemukan cara yang lebih cepat (cepat dan kotor) (Perhatian: tidak aman!) :

1) Instal aplikasi terminal dan buka

2) beralih ke root

sudo su

(masukkan kata sandi kunci layar Anda)

2) Masukkan perintah berikut:

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

Sekarang server ssh Anda berjalan dan ia akan menerima kode kunci layar Anda sebagai kata sandi! Perhatian: sangat mudah untuk brute-force sekarang! Silakan ubah pengaturan Anda segera (sekarang Anda dapat melakukannya dengan nyaman, setelah Anda terhubung melalui ssh dari PC Anda).

Karena Anda menjalankan sshd secara manual, file /etc/init/ssh.override tidak diterapkan lagi ...

Jadi untuk terhubung dari PC Anda:

ssh [email protected]

di mana xxxx adalah alamat IP telepon Anda, yang dapat Anda temukan dengan mengetik

ifconfig

di terminal telepon Anda.

Nikmati!

UPDATE : bisa jadi, bahwa setelah pembaruan, sshd gagal untuk memulai karena tidak dapat membuka kunci host, maka cukup buat kembali:

/usr/bin/ssh-keygen -A

Jika gagal karena / var / run / sshd tidak ada, buat saja:

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