Penyiapan awal tanpa monitor atau keyboard


10

Pertanyaan serupa telah diajukan sebelumnya: Bagaimana cara mengatur Raspberry Pi tanpa monitor?

Namun, mengingat bahwa jawaban yang diterima tampaknya tidak menawarkan solusi yang tepat, dan mengingat bahwa ada tingkat ambiguitas dalam apa yang ditanyakan, saya berasumsi bahwa pertanyaan awal salah dikonstruksi, dan bahwa pertanyaan saya bukan t duplikat yang tepat.

Saya melakukan pengaturan awal dan pertama kali Pi. Saya tidak memiliki monitor atau keyboard, melainkan ingin menggunakan laptop yang terhubung untuk melakukan pekerjaan itu. Saya tidak ingin membeli monitor atau keyboard dan meminta mereka duduk-duduk hanya untuk saat-saat ketika mereka dibutuhkan oleh Pi. Saya bisa meminjam mereka, tetapi saya berencana untuk membeli lebih banyak Pi di masa depan, dan tidak ingin harus meminjamnya setiap waktu.

Saya telah menetapkan alamat IP statis pada Pi dengan mengedit cmdline.txtfile. (Pi menjalankan versi terbaru Raspbian.)

ip=10.0.0.20

Saya telah memberikan ethantarmuka pada laptop saya alamat IP statis yang sesuai. (Laptop menjalankan Ubuntu.)

ip ad add 10.0.0.10/24 dev eth0

Saya telah menghubungkan keduanya bersama-sama dengan kabel ethernet dan berhasil melakukan ping Pi dari laptop saya.

Yang tidak bisa saya lakukan adalah sshke Pi. Saya mendapat respons Sambungan ditolak :

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

Satu hal yang menyiratkan hal ini adalah bahwa sshditu belum berjalan pada Pi.

The docs resmi negara yang sshdberjalan secara default, tapi apakah mungkin bahwa selama boot awal bahwa hal-hal lain (misalnya petunjuknya menunggu input pengguna) mungkin memblokir boot pada tingkat tertentu, berarti kita tidak mencapai titik di mana sshdadalah mulai ?

Kemana saya harus pergi dari sini? (Bukan "ke toko untuk membeli monitor" ...)

Apakah yang saya coba sebenarnya mungkin?

Edit:

Saya sekarang telah mencoba metode yang disebutkan dalam jawaban untuk posting berikut, tetapi tidak berhasil: Mengaktifkan SSH pada RPi tanpa layar - penekanan tombol untuk raspi-config?

Secara khusus, memastikan bahwa skrip init SSH dijalankan pada runlevel 2 masih tidak memungkinkan saya untuk terhubung.


Dengan anggapan Anda sedang melakukan ping Pi dan menjalankan Raspbian baru-baru ini, maka ia akan berfungsi. Satu-satunya alternatif yang bisa saya sarankan adalah masuk melalui UART pada pin 8 dan 10. Itu memang membutuhkan kabel dan dongle serial USB 3V3 yang kompatibel.
joan

Pengaturan alamat statis hanya memperumit masalah. Jika Anda tidak mengutak-atiknya, Anda harus dapat terhubung dengan ssh pi@raspberrypi.localAnda. Tampaknya Anda tidak berpikir untuk memberi tahu kami bagaimana sebenarnya Anda berusaha sshitu penting.
Milliways

Saya sudah mencoba menghapus alamat IP statis dari konfigurasi Pi, dan berusaha ping pi@raspberrypi.local. Tetapi ini tidak berhasil karena raspberrypi.localmerupakan host yang tidak dikenal. Tidakkah perlu entri /etc/hostspada laptop saya untuk dapat menyelesaikannya?
Richard Horrocks

Beri tahu saya detail lebih lanjut tentang bagaimana saya akan memasok SSHing, dan saya akan dengan senang hati memberikannya - permintaan maaf jika ada yang hilang. Terima kasih atas sarannya sejauh ini :)
Richard Horrocks

1
Anda bisa menjalankannya sudo nmap 10.0.0.20di laptop. Jika ini menunjukkan port 22 terbuka maka SSH sedang berjalan, jika tidak port tidak akan berjalan. Itu tidak akan memperbaikinya, tetapi itu akan memberi tahu Anda apa yang terjadi.
garethTheRed

Jawaban:


5

Dokumen resmi menyatakan bahwa sshd berjalan secara default

Pada gambar terbaru yang saya miliki, 2015-11-21-raspbian-jessie- lite .img , ini tidak benar. Jessie Debian / Raspbian saat ini menggunakan systemd untuk init, tetapi ada semacam mekanisme hybrid-kompatibel-mundur SysV built-in, dan saya perhatikan pada sistem berjalan saya buat dari gambar ini (menggunakan layar dan keyboard untuk pengaturan awal), di mana sshd sekarang diaktifkan, ada pemicu di kedua yang systemd dan SysV tua rc.ddirektori. Agaknya ini adalah cara kerja mekanisme back-kompatibel (saya mengaktifkan ssh via systemd). Bagaimanapun, hanya ada satu sshdcontoh dengan PPID 1 berjalan.

Untuk sistem kerja, ada entri masuk /etc/rc[2,3,4,5].duntuk S02ssh(nomor prioritas yang tepat, 02, diatur ketika layanan diaktifkan dan dapat bervariasi). Ada juga a /etc/systemd/system/multi-user.target.wants/ssh.service.

Namun pada gambar dasar ...

... Tidak ada entri /etc/systemddan ada K01sshuntuk runlevel 2, 3, 4, 5. Itu akan cukup menjamin tidak ada sshd yang berjalan.

Saran saya adalah pertama mencoba mengatur hanya entri SysV. Dari etcdirektori partisi kedua pada kartu SD:

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

Periksa untuk memastikan tautan ada dan menunjuk ke tempat yang tepat stat. Saya percaya ini sudah cukup dan Anda sekarang dapat mencoba mem-boot sistem. Jika demikian, setelah Anda menghapus tautan-tautan itu dan menjalankannya systemctl enable ssh, maka periksa tautan-tautan tersebut telah dibuat kembali (ingat, prioritasnya mungkin berbeda).

Jika Anda masih mendapatkan "Sambungan ditolak", buat tautan dari [SD_rootfs]/lib/systemd/system/ssh.serviceke [SD_rootfs]/etc/systemd/default.target.wants/ssh.servicedan coba lagi.


Terima kasih untuk instruksi yang sangat rinci. Saya perhatikan K01sshdi rc2.ddirektori dan menamainya, tetapi tidak melihat yang lain di rcdirektori lain . Menghapus yang menggunakan skrip Anda tidak membantu, sayangnya. (Saya memeriksa mereka dibuat, seperti yang Anda sarankan.) Untuk metode kedua, saya tidak memiliki ssh.serviceentri di etc/systemd/system/multi-user.target.wants/direktori, dan lib/systemd/system/direktori tidak dapat diakses. Sistem bahkan tidak bisa mengatakan itu direktori (dan menjalankan filememberi saya: ERROR: cannot open lib / systemd / system '(Kesalahan input / output) `).
Richard Horrocks

Perhatikan bahwa saya tidak menggunakan gambar Lite, tetapi gambar penuh lemak pada tanggal yang sama dengan Anda.
Richard Horrocks

Lihatlah direktori init yang disebutkan di atas pada kartu. Anda harus dapat mengetahui apakah ssh diaktifkan atau tidak. Jika ya, perbaiki IP + ssh berjalan! = "Sambungan ditolak", jadi ada sesuatu yang salah di suatu tempat dan Anda harus menemukan layar dan keyboard untuk mendiagnosisnya. Bergantian (atau juga), Anda bisa menggunakan sesuatu seperti wireshark untuk melihat paket apa yang bolak-balik; ini akan membuktikan dengan pasti apa yang terjadi pada jaringan.
goldilocks

Oke, sudah berkeliling dengan Wireshark tetapi tidak berhasil. Kemudian memutuskan untuk membakar gambar Lite dan mencobanya. Saya perhatikan bahwa systemdfile yang Anda sebutkan ada, jadi cobalah saran kedua Anda, yang bekerja :) Tidak yakin mengapa hal-hal berbeda di antara gambar, tetapi bisa saja peretasan saya yang mempengaruhi sesuatu di gambar pertama. (Saya tidak tahu apa ...) Terima kasih banyak atas bantuan Anda.
Richard Horrocks

Demi kelengkapan, saya mencoba lagi dengan gambar Jessie full-fat baru yang dibakar ke kartu SD yang berbeda, tetapi sekali lagi, lib/systemd/system/direktori itu tidak dapat diakses. Hal yang sama berlaku untuk gambar Wheezy. Hanya gambar Lite yang memungkinkan saya untuk mengakses direktori dan karenanya menyelesaikan instruksi.
Richard Horrocks

11

Bagi Anda yang mengalami ini dengan gambar Raspbian yang lebih baru: ada sshwitchtarget systemd, yang memeriksa /boot/ssh, dan jika file itu ada, itu meregenerasi kunci host SSH dan memungkinkan server SSH.

Jadi, untuk mengaktifkan SSH, cukup tambahkan file yang disebut sshdi root partisi boot (yang FAT, dengan bootcode.binfile), dan boot Pi Anda!

Sunting: ini berfungsi pada gambar 2017-01-11-raspbian-jessie-lite saya.


Ini bekerja dengan baik. Jika Anda memiliki keyboard praktis, ketik: pi <enter> raspberry <enter> sudo touch / boot / ssh <enter> sudo reboot <enter> kemudian tonton router Anda saat perangkat mendapatkan ip, kemudian ssh pi @ <thatip> dan Anda akan merasa seperti seorang hacker.
nurettin

1

Maaf tentang ini menjadi jawaban tetapi tidak memuji hanya komentar.

Apakah layanan ssh menyala? Jika memungkinkan, dan ini adalah salah satu gambar instalasi raspberry, coba raspi-config hanya untuk mengaktifkan ssh.

Cara lain, periksa apakah ssh dimuat dan diaktifkan

sudo service --status-all|grep ssh

Mungkin port ssh 22 menolak koneksi karena layanan tidak siap


1
Pada versi raspbian saat ini, Anda mungkin ingin menggunakan systemctl --list-units | grep ssh(atau lebih baik, tetapi lebih informatif systemctl status ssh). Tapi Anda pada dasarnya benar, "Sambungan ditolak" berarti tidak ada yang mendengarkan di port. Jika ssh sedang berjalan, maka IP salah.
goldilocks

2
Terima kasih atas jawabannya. Masalah dengan saran Anda adalah bahwa saya tidak memiliki cara menjalankan perintah, karena saya tidak dapat mengakses Pi untuk menjalankannya. Ayam dan telur :( Saya tahu alamat IP sudah benar karena saya bisa melakukan ping (dan saya tidak tahu apa-apa di jaringan yang memiliki alamat yang sama).
Richard Horrocks

1

https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/ Tautan ini untuk sistem operasi versi Rasbian PIXEL.


Ini sepertinya tidak menjawab pertanyaan dengan cara apa pun.
Jacobm001

Meskipun informasi yang bermanfaat hanya ada di tautan (daripada di jawaban jawaban, di mana seharusnya), ini setidaknya adalah dokumentasi raspberrypi.org resmi, dan bagian "Apa yang telah berubah?" di halaman tertaut merinci masalah keamanan yang menyebabkan perubahan yang diperlukan (yaitu menonaktifkan ssh secara default), dan merinci /boot/sshperbaikannya.
Roberto Tyley

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.