Thiết lập ban đầu không có màn hình hoặc bàn phím


10

Một câu hỏi tương tự đã được đặt ra trước đây: Làm thế nào để thiết lập Raspberry Pi mà không cần màn hình?

Tuy nhiên, do câu trả lời được chấp nhận dường như không đưa ra một giải pháp phù hợp và cho rằng có một mức độ mơ hồ trong những gì đang được hỏi, tôi cho rằng câu hỏi ban đầu được xây dựng sai và câu hỏi của tôi không phải là ' một bản sao chính xác.

Tôi đang thực hiện lần đầu tiên thiết lập Pi. Tôi không có màn hình hoặc bàn phím, nhưng thay vào đó, tôi muốn sử dụng máy tính xách tay được kết nối để thực hiện công việc. Tôi không muốn mua một màn hình hoặc bàn phím và để chúng ngồi xung quanh chỉ trong những dịp mà Pi cần. Tôi có thể mượn chúng, nhưng tôi dự định sẽ mua thêm Pi trong tương lai và không muốn phải mượn chúng mỗi lần.

Tôi đã đặt địa chỉ IP tĩnh trên Pi bằng cách chỉnh sửa cmdline.txttệp. (Pi đang chạy phiên bản mới nhất của Raspbian.)

ip=10.0.0.20

Tôi đã cung cấp cho ethgiao diện trên máy tính xách tay của tôi một địa chỉ IP tĩnh tương ứng. (Máy tính xách tay đang chạy Ubuntu.)

ip ad add 10.0.0.10/24 dev eth0

Tôi đã kết nối cả hai với nhau bằng cáp ethernet và có thể ping thành công Pi từ máy tính xách tay của tôi.

Những gì tôi không thể làm là sshvới Pi. Tôi nhận được kết nối từ chối phản hồi:

richard@richard-ThinkPad-X220:~$ ssh -vvv pi@10.0.0.20
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 10.0.0.20 [10.0.0.20] port 22.
debug1: connect to address 10.0.0.20 port 22: Connection refused
ssh: connect to host 10.0.0.20 port 22: Connection refused

Một điều mà điều này có nghĩa là sshdchưa chạy trên Pi.

Các tài liệu chính thức nhà nước mà sshdchạy theo mặc định, nhưng nó có thể là trong một cuộc khởi động ban đầu mà những thứ khác (ví dụ như nhắc nhở chờ đợi cho người dùng nhập vào) có thể ngăn chặn việc khởi động ở một mức độ nhất định, có nghĩa là chúng ta không đạt đến điểm mà tại đó sshdlà bắt đầu ?

Nơi nào tôi đi từ đây? (Không phải "đến cửa hàng để mua màn hình" ...)

Là những gì tôi đang cố gắng thực sự có thể?

Biên tập:

Bây giờ tôi đã thử các phương pháp được đề cập trong các câu trả lời cho bài đăng sau, nhưng không thành công: Kích hoạt SSH trên RPi mà không cần màn hình - tổ hợp phím cho raspi-config?

Cụ thể, đảm bảo rằng tập lệnh SSH init được chạy ở runlevel 2 vẫn không cho phép tôi kết nối.


Giả sử bạn đang ping Pi và nó đang chạy Raspbian gần đây thì nó sẽ hoạt động. Cách thay thế duy nhất tôi có thể đề xuất là đăng nhập qua UART trên các chân 8 và 10. Điều đó đòi hỏi phải có dây và khóa nối tiếp USB tương thích 3V3.
gia

Đặt địa chỉ tĩnh chỉ làm phức tạp vấn đề. Nếu bạn không quan tâm đến nó, bạn sẽ có thể kết nối với ssh pi@raspberrypi.localBạn dường như không nghĩ cho chúng tôi biết bạn thực sự cố gắng như thế nào sshlà quan trọng.
Milliways

Tôi đã thử xóa địa chỉ IP tĩnh khỏi cấu hình của Pi và đã thử ping pi@raspberrypi.local. Nhưng điều này không hoạt động vì raspberrypi.locallà một máy chủ không xác định. Nó sẽ không cần một mục trong /etc/hostsmáy tính xách tay của tôi để có thể giải quyết nó?
Richard Horrocks

Hãy cho tôi biết thêm thông tin chi tiết nào về cách tôi cung cấp SSH, và tôi sẵn sàng cung cấp cho họ - xin lỗi nếu có gì thiếu. Cảm ơn những lời đề nghị cho đến nay :)
Richard Horrocks

1
Bạn có thể chạy sudo nmap 10.0.0.20trên máy tính xách tay. Nếu nó hiển thị cổng 22 đang mở thì SSH đang chạy, nếu không thì nó không chạy. Nó sẽ không sửa nó, nhưng nó sẽ cho bạn biết chuyện gì đang xảy ra.
garethTheRed 30/1/2016

Câu trả lời:


5

Các tài liệu chính thức nói rằng sshd chạy theo mặc định

Trên hình ảnh mới nhất tôi có, 2015-11-21-raspbian-jessie- lite .img, điều này không đúng. Debian / Raspbian jessie hiện sử dụng systemd cho init, nhưng có một loại cơ chế tương thích ngược SysV lai được tích hợp và tôi nhận thấy trên hệ thống đang chạy mà tôi đã tạo từ hình ảnh này (sử dụng màn hình và bàn phím để thiết lập ban đầu), khi sshd được kích hoạt, có một kích hoạt trong cả thư mục systemd và SysV cũ rc.d. Có lẽ đây là cách cơ chế tương thích ngược hoạt động (Tôi đã bật ssh qua systemd). Trong mọi trường hợp, chỉ có một sshdphiên bản có PPID là 1 đang chạy.

Đối với hệ thống làm việc, có một mục nhập /etc/rc[2,3,4,5].dcho S02ssh(số ưu tiên chính xác, 02, được đặt khi dịch vụ được bật và có thể thay đổi). Ngoài ra còn có a /etc/systemd/system/multi-user.target.wants/ssh.service.

Trong ảnh cơ bản, tuy nhiên ...

... Không có mục nào trong /etc/systemdvà có một K01sshrunlevels 2, 3, 4, 5. Điều đó sẽ đảm bảo khá nhiều không có sshd nào đang chạy.

Đề nghị của tôi là trước tiên hãy thử thiết lập chỉ mục SysV. Từ etcthư mục của phân vùng thứ hai trên thẻ SD:

for i in 2 3 4 5; do \
ln -s ../init.d/ssh rc$i.d/S02ssh; \
rm rc$i.d/K01ssh \
done

Kiểm tra để đảm bảo các liên kết ở đó và chúng trỏ đến đúng nơi stat. Tôi tin rằng điều này là đủ và bây giờ bạn có thể thử khởi động hệ thống. Nếu vậy, sau khi bạn gỡ bỏ các liên kết đó và chạy systemctl enable ssh, sau đó kiểm tra các liên kết đã được tạo lại (hãy nhớ, mức độ ưu tiên có thể khác).

Nếu bạn vẫn nhận được "Kết nối bị từ chối", hãy tạo một liên kết từ [SD_rootfs]/lib/systemd/system/ssh.serviceđến [SD_rootfs]/etc/systemd/default.target.wants/ssh.servicevà thử lại.


Cảm ơn đã hướng dẫn rất chi tiết. Tôi đã nhận thấy K01sshtrong rc2.dthư mục và đổi tên nó, nhưng đã không phát hiện ra những người khác trong các rcthư mục khác . Thật không may, loại bỏ những người sử dụng tập lệnh của bạn đã không giúp đỡ. (Tôi đã kiểm tra chúng đã được tạo, như bạn đề xuất.) Đối với phương thức thứ hai, tôi không có ssh.servicemục trong etc/systemd/system/multi-user.target.wants/thư mục và lib/systemd/system/thư mục không thể truy cập được. Hệ thống thậm chí không thể nói đó là một thư mục (và việc chạy filemang lại cho tôi: ERROR: cannot open lib / systemd / system '(Lỗi đầu vào / đầu ra) `).
Richard Horrocks

Lưu ý rằng tôi không sử dụng hình ảnh Lite, nhưng hình ảnh đầy đủ chất béo cùng ngày với bạn.
Richard Horrocks

Có một cái nhìn vào các thư mục init được đề cập ở trên trên thẻ. Bạn sẽ có thể cho biết liệu ssh có được kích hoạt hay không. Nếu đúng, IP + ssh đang chạy! = "Kết nối bị từ chối", do đó, đã xảy ra lỗi ở đâu đó và bạn sẽ phải tìm màn hình và bàn phím để chẩn đoán. Thay phiên (hoặc là tốt), bạn có thể sử dụng một cái gì đó như wireshark để xem những gói nào đang qua lại; điều này sẽ chứng minh chắc chắn những gì đang xảy ra trên mạng.
goldilocks

Được rồi, đã chọc ngoáy với Wireshark nhưng không đi đến đâu. Sau đó quyết định ghi một hình ảnh Lite và thử nó. Tôi nhận thấy rằng các systemdtập tin bạn đề cập đã có mặt, vì vậy đã thử đề xuất thứ hai của bạn, nó đã hoạt động :) Không chắc chắn tại sao mọi thứ khác nhau giữa các hình ảnh, nhưng nó có thể là sự hack của tôi xung quanh đã ảnh hưởng đến thứ gì đó trong hình ảnh đầu tiên. (Tôi không biết gì ...) Cảm ơn rất nhiều vì sự giúp đỡ của bạn.
Richard Horrocks

Để hoàn thiện, tôi đã thử lại với một hình ảnh Jessie đầy chất béo mới bị đốt cháy sang một thẻ SD khác, nhưng một lần nữa, lib/systemd/system/thư mục không thể truy cập được. Điều tương tự cũng xảy ra với một hình ảnh Wheezy. Chỉ hình ảnh Lite cho phép tôi truy cập vào thư mục và do đó hoàn thành các hướng dẫn.
Richard Horrocks

11

Đối với những người bạn chạy vào điều này với các hình ảnh Raspbian mới hơn: có một sshwitchmục tiêu systemd, sẽ kiểm tra /boot/sshvà nếu có tệp đó, nó sẽ tạo lại các khóa máy chủ SSH và kích hoạt máy chủ SSH.

Vì vậy, để kích hoạt SSH, chỉ cần thêm một tệp được gọi sshtrong thư mục gốc của phân vùng khởi động ( bootcode.bintệp FAT, với tệp) và khởi động Pi của bạn!

Chỉnh sửa: điều này đã làm việc trên hình ảnh 2017-01-11-raspbian-jessie-lite của tôi.


Điều này hoạt động tốt. Nếu bạn có bàn phím tiện dụng, hãy gõ: pi <enter> raspberry <enter> sudo touch / boot / ssh <enter> sudo restart <enter> sau đó xem bộ định tuyến của bạn khi thiết bị có ip, sau đó ssh pi @ <thatip> và bạn sẽ cảm thấy như một hacker
Nurettin

1

Xin lỗi về điều này là một câu trả lời nhưng không phải là tín dụng chỉ để bình luận.

Là dịch vụ ssh lên? Nếu có thể, và đó là một trong những hình ảnh cài đặt mâm xôi, hãy thử raspi-config chỉ để bật ssh.

Một cách khác, kiểm tra xem ssh đã được tải và kích hoạt chưa

sudo service --status-all|grep ssh

Có thể cổng ssh 22 từ chối kết nối vì dịch vụ chưa sẵn sàng


1
Trên các phiên bản hiện tại của raspbian có lẽ bạn muốn sử dụng systemctl --list-units | grep ssh(hoặc tốt hơn là nhiều thông tin hơn systemctl status ssh). Nhưng về cơ bản bạn là chính xác, "Kết nối bị từ chối" có nghĩa là không có gì đang lắng nghe trên cổng. Nếu ssh đang chạy, thì IP sai.
goldilocks

2
Cảm ơn câu trả lời. Vấn đề với đề xuất của bạn là tôi không có cách nào để chạy lệnh, vì tôi không thể truy cập Pi để chạy nó. Gà và trứng. :( Tôi biết địa chỉ IP là chính xác vì tôi có thể ping nó (và tôi không biết gì khác trên mạng có cùng địa chỉ).
Richard Horrocks

1

https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/ Liên kết này cho hệ điều hành phiên bản Rasbian PIXEL.


Điều này thực sự dường như không trả lời câu hỏi theo bất kỳ cách nào.
Jacobm001

Mặc dù thông tin hữu ích chỉ có trong liên kết (chứ không phải trong phản hồi câu trả lời, đó là nơi cần có), đây ít nhất là tài liệu chính thức của raspberrypi.org và phần "Điều gì đã thay đổi?" trong trang được liên kết chi tiết các vấn đề bảo mật gây ra các thay đổi bắt buộc (nghĩa là vô hiệu hóa ssh theo mặc định) và chi tiết /boot/sshsửa lỗi.
Roberto Tyley

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.