Làm cách nào tôi có thể truy cập điện thoại Ubuntu qua ssh?


16

Bất cứ khi nào tôi cố gắng chạy, apt-get install openssh-servertôi nhận được các lỗi sau:

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.

Chính xác là cùng một lỗi
195123

Lỗi tương tự đối với tôi khi làm điều tương tự - ubfox 11.04.
Malee

1
@Malee 11.04 là hết cuộc đời, bạn không thể nhận trợ giúp cho 11.04 tại đây vì điều đó. Nâng cấp lên 12.04 hoặc mới hơn hoặc lên bản phát hành được hỗ trợ và sau đó chúng tôi có thể giúp bạn khắc phục.
Thomas Ward

1
Ubuntu touch chưa có trung tâm phần mềm và cập nhật chỉ là thiết bị đầu cuối, điều mà tôi đã không làm khi tôi cố gắng cài đặt openssh.
195123

Ok vì tôi chưa thay đổi quá nhiều, bạn có nghĩ định dạng lưu trữ của tôi và phản xạ ubfox giúp được không?
195123

Câu trả lời:


27

Với bản phát hành chính thức cuối cùng, Ubuntu cho Điện thoại cung cấp công cụ "dịch vụ tiện ích android" mà bạn có thể quản lý adb, mtp, USB tethering và ssh.

Kết nối thiết bị của bạn qua USB, bật Chế độ nhà phát triển trong:

"Cài đặt hệ thống-> Giới thiệu về điện thoại này-> Chế độ nhà phát triển"

... Và chạy (từ PC của bạn, đảm bảo mở khóa màn hình điện thoại, nếu không adb sẽ từ chối cho bạn vào):

adb shell android-gadget-service enable ssh

Sao chép khóa công khai của bạn vào Điện thoại:

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

Bây giờ bạn có thể tra cứu IP của mình trên điện thoại và sử dụng ssh để kết nối:

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

Hoạt động tuyệt vời, nhưng lệnh cuối cùng sẽ hiển thị không có IP nếu giao diện mạng không được đặt tên wlan0. Của tôi là wlan2vì một số lý do.
Cos64

Lệnh: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Cung cấp cho tôi: không thể stat '/home/tenleftfingers/.ssh/id_rsa.pub': Không có tập tin hoặc thư mục
TenLeftFingers

Không cần Chế độ nhà phát triển hoặc làm cho hình ảnh có thể ghi. Xem SSH Ubuntu Touch để biết giải pháp dễ dàng, hiệu quả. Như mọi khi với xác thực không cần mật khẩu, bạn cần đặt một /home/phablet/.ssh/authorized_keystệp (với khóa chung của PC bạn đang sử dụng để truy cập thiết bị Ubuntu Touch) trên thiết bị của mình. Chạy ssh -v phablet@<ip-address>(verbose) giúp gỡ lỗi các vấn đề đăng nhập hoặc quyền.
Peterino

@orga Nó có phát sóng với zeroconf (avahi-daemon) không? Bằng cách đó tôi có thể thấy thiết bị của mình trên nautilus và truyền tệp qua sftp.
Khurshid Alam

Tôi cũng đã phải thêm quyền: chmod ow ~ /
Mantas Vaitkūnas

17

Để kích hoạt truy cập ssh hoàn toàn qua wifi , không có chế độ nhà phát triển trên điện thoại, không có bất kỳ công cụ đặc biệt nào trên máy tính của bạn và không sử dụng USB :

  1. Nếu bạn chưa có cặp khóa ssh, hãy nhập ssh-keygenvào máy tính của bạn và làm theo hướng dẫn để tạo một khóa.
  2. Cài đặt ứng dụng Terminal trên điện thoại từ App Store.
  3. Mở Terminal và gõ (điều này dễ dàng hơn với điện thoại theo hướng ngang):

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

    (lệnh cuối cùng sẽ bị treo; điều này được mong đợi)

  4. Tìm địa chỉ IP điện thoại của bạn trong Terminal như được trả về bởi ip addrlệnh trên.

  5. Trên máy tính của bạn, nhập (thay thế 192.0.2.1bằng địa chỉ IP điện thoại của bạn từ phía trên):

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

    Nếu thành công, lệnh cuối cùng trên Terminal điện thoại của bạn sẽ thành công.

  6. Trên máy tính của bạn, nhập (một lần nữa thay thế 192.0.2.1bằng địa chỉ IP điện thoại của bạn từ phía trên):

    ssh phablet@192.0.2.1
    
  7. Nếu địa chỉ IP điện thoại của bạn thay đổi, bạn sẽ cần sử dụng lại ip addrtrong ứng dụng Terminal trên điện thoại và điều chỉnh lệnh ssh cho phù hợp.


3
Câu trả lời rất nhiều thông tin vì nó không có vỏ adb và cáp USB. Hai ngón tay cái lên!
Các pha nguy hiểm

Thật vậy, câu trả lời rất hữu ích. +2
zloster

@ogra (người hiểu rõ hơn tôi) nói với tôi rằng nên sudo android-gadget-service enable sshthay thế sudo setprop persist.service.ssh truevà nên được sử dụng thay thế, nhưng tôi chưa thử nghiệm điều này.
Robie Basak

1
Đây phải là câu trả lời hàng đầu vì với BQ Aquarius 5, điện thoại không thể được phát hiện bằng phương pháp Android.
Kat Amsterdam

14

Máy chủ OpenSSH hiện đã được cài đặt (kể từ ngày 13 tháng 9 năm 2013) được cài đặt sẵn Ubuntu Touch . Tuy nhiên, nó cũng bị tắt theo mặc định . Bạn cũng không muốn SSH hoạt động từ root .


Bạn cần nhập nội dung sau, sử dụng kết nối USB với thiết bị:

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

Hoàn nguyên về người khuyết tật

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

CẬP NHẬT: (09 tháng 3 năm 2014)

Câu trả lời ở trên không còn hiện hành.

  • Kể từ đầu tháng 3 năm 2014, trong khi tệp /etc/init/ssh.overridevẫn tồn tại, việc thay đổi nội dung của nó không cho phép SSH (thực sự là sshd daemon) chạy khi khởi động.

  • Các bản dựng gần đây (đã được thử nghiệm cho 226 , nhưng có thể sớm hơn) hiện hỗ trợ một meta.service.ssh mới , cho phép SSH ( sshd daemon) khởi động lại khi khởi động.

Nhận dấu nhắc lệnh (trên thiết bị)

adb shell
su - phablet

Bắt đầu SSH và đặt cờ

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

Thiết bị khởi động lại

sudo reboot

Trình nền SSH sẽ tự động khởi động

sudo service ssh status

Để tắt tính năng tự động khởi động SSH, hãy thay đổi cờ:

sudo setprop persist.service.ssh false

Tại sao bạn cần sudo mọi thứ sau khi đi su -?
Bạch tuộc

1
Dòng su - phabletthay đổi người dùng thành phablet , không phải siêu người dùng. Nói chung, cách tốt nhất là sử dụng đặc quyền tối thiểu , để ít bị tấn công hơn.
david6

câu trả lời này cần cập nhật, hãy xem @ ogra's
sergiusens

1
Sẽ cần phải xem xét và thử phương pháp đó trước.
david6


0

Cài đặt Ubuntu SDK và nhấp vào "Mở kết nối SSH làm thiết bị" trong bảng điều khiển thiết bị. Phần thưởng: bạn sẽ không cưỡng lại việc viết Phạm vi mới ...


0

Tôi vừa tìm thấy một cách nhanh hơn (nhanh và bẩn) (Chú ý: nó không an toàn!) :

1) Cài đặt ứng dụng đầu cuối và mở nó

2) chuyển sang root

sudo su

(nhập mật khẩu khóa màn hình của bạn)

2) Nhập các lệnh sau:

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

Bây giờ máy chủ ssh của bạn đang chạy và nó sẽ chấp nhận mã khóa màn hình của bạn làm mật khẩu! Chú ý: bây giờ rất dễ để vũ phu! Vui lòng thay đổi cài đặt của bạn ngay lập tức (bây giờ bạn có thể thực hiện một cách thoải mái, sau khi bạn kết nối qua ssh từ PC).

Vì bạn chạy sshd theo cách thủ công, tệp /etc/init/ssh.override không được áp dụng nữa ...

Vì vậy, để kết nối từ PC của bạn:

ssh phablet@x.x.x.x

xxxx là địa chỉ IP của điện thoại mà bạn có thể tìm thấy bằng cách nhập

ifconfig

trong thiết bị đầu cuối của điện thoại của bạn.

Thưởng thức!

CẬP NHẬT : có thể, sau khi cập nhật, sshd không khởi động được vì không thể mở khóa máy chủ, sau đó chỉ cần tạo lại chúng:

/usr/bin/ssh-keygen -A

Nếu thất bại vì / var / run / sshd bị thiếu, chỉ cần tạo nó:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.