Nơi để thêm khóa SSH để cho phép kết nối với máy chủ từ xa trên Android?


10

Tôi đang sử dụng kernel Android tùy chỉnh đã được root (Gingerbread) và có thể kết nối với máy chủ SSH từ xa bằng xác thực mật khẩu bằng busybox và ứng dụng giả lập thiết bị đầu cuối. Tôi muốn có thể sử dụng các khóa SSH để tự động đăng nhập; điều này có thể không Nếu vậy, tôi nên đặt khóa riêng ở đâu?

Câu trả lời:


10

Nó không hoàn toàn liền mạch, nhưng sshnhị phân được cung cấp bởi busybox (ít nhất là của tôi) hỗ trợ -icờ, vì vậy bạn có thể đặt khóa bất cứ nơi nào bạn muốn và sử dụng:

ssh -i /path/to/key_file joeuser@somehost.com

Mục nhập trang con người có liên quan cho -i(với lời cảnh báo rằng thông tin về đường dẫn mặc định có thể không giống nhau trên Android):

-i identity_file

         Selects a file from which the identity (private key) for public
         key authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and
         ~/.ssh/id_rsa for protocol version 2.  Identity files may also be
         specified on a per-host basis in the configuration file.  It is
         possible to have multiple -i options (and multiple identities
         specified in configuration files).  ssh will also try to load
         certificate information from the filename obtained by appending
         -cert.pub to identity filenames.

Cảm ơn, tôi đã nghĩ về điều đó, nhưng không bao giờ có thể thử nó. Có vẻ lạ là không có nơi nào lệnh ssh sẽ tìm thư mục .ssh ... có lẽ vì không có $ HOME được đặt?
yuttadhammo

2
@Yuttadhammo: Điều kỳ lạ là $HOME(đối với root) được đặt thành /datatrên điện thoại của tôi, nhưng sshdường như bỏ qua mọi thư mục tôi cố gắng thiết lập ở đó. Tôi chưa bao giờ thực sự hiểu tại sao lại như vậy, nhưng tôi cũng không cần phải thực sự nghiên cứu về nó.
eldarerathis

@Yuttadhammo Trong điện thoại của tôi, echo $HOMEkhông trả về gì cả (ngay cả đối với root). Nếu đó cũng là trường hợp của bạn, đó là lý do tại sao máy khách SSH của bạn không thể nhìn thấy các khóa theo mặc định. Nhưng, với -icờ, bạn có thể ghi đè đường dẫn mặc định, vì vậy không có điểm nào tìm kiếm $ HOME. Đây là giải pháp chính xác nếu máy khách SSH cắt xén của bạn hỗ trợ nó. Vì vậy, hãy thử nó sau khi đặt chìa khóa vào sdcard. Nếu thất bại, không có cách nào khác trừ khi bạn thay đổi máy khách SSH.
Android Quesito

Tuyệt quá. Đã làm cho tôi.
dùng20203293928832

6

Cài đặt và chạy ConnectBot (ứng dụng khách SSH chuyên dụng). Nhấn / bấm phím menu. Từ menu, nhấn Manage Pubkeys. Trên màn hình tiếp theo, nhấn / nhấn phím menu. Từ menu, nhấn Import.


Cảm ơn tôi thực sự đã làm điều đó - ứng dụng tốt đẹp; Có cách nào đơn giản là đặt chìa khóa ở đâu đó và có busybox nhặt nó không?
yuttadhammo

@Yuttadhammo Tôi không nghĩ bao bì Busybox mặc định cung cấp máy khách SSH. Bạn có thể cụ thể hơn với máy khách SSH của mình (có thể là tiện ích bên ngoài) không?
Android Quesito

Ngoài ra, hãy nhớ .. vì các applet của busybox được cắt bớt phiên bản gốc, ứng dụng SSH dòng lệnh của bạn có thể không hỗ trợ xác thực bằng khóa, nhưng rất khó xảy ra. Chỉ cần cho tôi biết về máy khách SSH của bạn.
Android Quesito

Cảm ơn, ConnectBot là giải pháp tôi sẽ sử dụng, nhưng cờ -i thực sự gần hơn để trả lời câu hỏi.
yuttadhammo
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.