SSH ไม่ทำงานกับการติดตั้งใหม่


48

ฉันเพิ่งปลดปล่อย B รุ่นเก่าจากลอฟท์วาง NOOBS ลงในการ์ด SD และติดตั้ง Raspbian เวอร์ชันล่าสุด ฉันบูตมันขึ้นมาพยายามใช้ SSH จาก Mac แต่ได้:

ssh: connect to host 192.168.1.248 port 22: Connection refused

ฉันได้รับสิ่งนี้ในอินสแตนซ์แรกโดยการเรียกใช้sudo ssh restartแต่ตอนนี้ทุกครั้งที่ฉันบูทขึ้นอีกครั้งฉันต้องรีสตาร์ทเซอร์วิส ssh ก่อนที่ฉันจะสามารถ ssh อีกครั้งซึ่งเห็นได้ชัดว่าไม่ได้ใช้งานจริง ฉันจะทำอย่างไรเพื่อแก้ไขปัญหาให้ถาวรยิ่งขึ้น


3
สำเนาซ้ำซ้อนที่เป็นไปได้ของเตรียมพร้อมสำหรับ ssh โดยไม่มีหน้าจอ
ฟาเอล

คำตอบ:


84

การอ้างถึงเอกสาร :

ตั้งแต่เดือนพฤศจิกายน 2559 Raspbian ปิดใช้งานเซิร์ฟเวอร์ SSH เป็นค่าเริ่มต้น คุณจะต้องเปิดใช้งานด้วยตนเอง

วิธีเปิดใช้งาน SSH บนเครื่องผ่านคอนโซล:

ใส่sudo raspi-configใน terminal ก่อนอื่นให้เลือกInterfacing Optionsจากนั้นไปsshกดและเลือกEnterEnable or disable ssh server

หากต้องการเปิดใช้งาน SSH สำหรับเครื่องที่ไม่มีหัว

สำหรับการตั้งค่าแบบหัวขาดคุณสามารถเปิดใช้งาน SSH ได้โดยการวางไฟล์ที่ชื่อsshโดยไม่มีส่วนขยายใด ๆ ลงในพาร์ติชันสำหรับบูตของการ์ด SD


6
ฉันลองตั้งค่าหัวขาดบน Raspbian Stretch Desktop จาก 2018-03-14 และดูเหมือนว่าจะไม่ทำงานอีกต่อไปทำงานกับเวอร์ชันก่อนหน้า
JBaczuk

ปัญหาเดียวกันกับหัวขาดในการสร้างsshไฟล์ในการบูตดูเหมือนจะไม่ทำงานแม้ว่าจะมีข้อความปรากฏขึ้นในการบู๊ต
Sander Visser

@JBaczuk ฉันกำลังประสบกับสิ่งเดียวกัน คุณซ่อมมันแล้วหรือยัง?
แอรอน

@JBaczuk ตอนนี้อยู่ภายใต้ "ตัวเลือกการเชื่อมต่อ" (ที่มา: raspberrypi.org/forums/viewtopic.php?t=177883 )
แอรอน

@Aaron โอเค แต่คุณจะทำสิ่งนี้ด้วยการตั้งค่าหัวขาดได้อย่างไร
JBaczuk

11

เพิ่งมีการปรับปรุงความปลอดภัยสำหรับ Raspberry Pi นี่คือบทความจากhttps://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/

จากบทความของมูลนิธิ:

มีการเปลี่ยนแปลงอย่างไร

ก่อนอื่นจากนี้ไป SSH จะถูกปิดการใช้งานตามค่าเริ่มต้นในรูปภาพของเรา SSH (Secure SHell) เป็นโปรโตคอลเครือข่ายที่ช่วยให้คุณสามารถลงชื่อเข้าใช้คอมพิวเตอร์ Linux จากระยะไกลและควบคุมจากบรรทัดคำสั่งระยะไกล ดังที่ได้กล่าวไว้ข้างต้นเจ้าของ Pi หลายคนใช้มันเพื่อติดตั้ง Pi แบบไม่มีหัว (ไม่มีหน้าจอหรือแป้นพิมพ์) และควบคุมจากพีซีเครื่องอื่น

ในอดีต SSH เปิดใช้งานโดยค่าเริ่มต้นดังนั้นผู้ที่ใช้หัว Pi ของพวกเขาสามารถอัปเดตการ์ด SD เป็นภาพใหม่ การสลับเปิดหรือปิด SSH นั้นจำเป็นต้องใช้แอปพลิเคชั่น raspi-config หรือ Raspberry Pi แต่ในการเข้าถึงคุณต้องมีหน้าจอและคีย์บอร์ดที่เชื่อมต่อกับ Pi เองซึ่งไม่ใช่กรณีในแอปพลิเคชันที่ไม่มีหัว ดังนั้นเราจึงจัดเตรียมกลไกง่าย ๆ สำหรับการเปิดใช้งาน SSH ก่อนที่จะบูตอิมเมจ

พาร์ติชันสำหรับเริ่มระบบบน Pi ควรสามารถเข้าถึงได้จากเครื่องใด ๆ ด้วยตัวอ่านการ์ด SD บน Windows, Mac หรือ Linux หากคุณต้องการเปิดใช้งาน SSH สิ่งที่คุณต้องทำก็คือใส่ไฟล์ที่ชื่อ ssh ในไดเร็กทอรี / boot / เนื้อหาของไฟล์ไม่สำคัญ: มันสามารถมีข้อความที่คุณชอบหรือแม้แต่ไม่มีอะไรเลย เมื่อ Pi บู๊ตมันจะค้นหาไฟล์นี้ หากพบมันจะเปิดใช้งาน SSH แล้วลบไฟล์ SSH ยังสามารถเปิดหรือปิดได้จากแอปพลิเคชั่น Raspberry Pi Configuration หรือ raspi-config นี่เป็นเพียงวิธีเพิ่มเติมในการเปิดใช้หากคุณไม่สามารถเรียกใช้แอปพลิเคชันเหล่านั้นได้อย่างง่ายดาย

ความเสี่ยงด้วยพอร์ต SSH แบบเปิดคือใครบางคนสามารถเข้าถึงและล็อกอินได้ ในการทำเช่นนี้พวกเขาต้องการบัญชีผู้ใช้และรหัสผ่าน ออกจากกล่องการติดตั้ง Raspbian ทั้งหมดมีบัญชีผู้ใช้เริ่มต้น 'pi' ด้วยรหัสผ่าน 'raspberry' หากคุณเปิดใช้งาน SSH คุณควรเปลี่ยนรหัสผ่านสำหรับผู้ใช้ 'pi' เพื่อป้องกันแฮ็กเกอร์ที่ใช้ค่าเริ่มต้น เพื่อเป็นการสนับสนุนสิ่งนี้เราได้เพิ่มคำเตือนลงในกระบวนการบูต หากเปิดใช้งาน SSH และรหัสผ่านสำหรับผู้ใช้ 'pi' ยังคงเป็น 'raspberry' คุณจะเห็นข้อความเตือนทุกครั้งที่คุณบูตเครื่อง Pi ไม่ว่าจะเป็นเดสก์ท็อปหรือบรรทัดคำสั่ง เราไม่ได้บังคับให้เปลี่ยนรหัสผ่าน แต่คุณจะได้รับการเตือนเมื่อคุณบูตเครื่องหาก Pi ของคุณมีความเสี่ยง

ความหวังของเราคือการเปลี่ยนแปลงเหล่านี้ (ค่อนข้างน้อย) จะไม่ทำให้เกิดความไม่สะดวกมากนัก แต่จะทำให้แฮกเกอร์โจมตี Pi ได้ยากขึ้น

ความหมายโดยทั่วไปคือเมื่อเร็ว ๆ นี้มีการแฮ็กอุปกรณ์จำนวนมากโดยใช้การเชื่อมต่อระยะไกลเช่น SSH ด้วยเหตุนี้ SSH จึงถูกปิดใช้งานตามค่าเริ่มต้น เพื่อแก้ไขสิ่งที่คุณต้องทำคือสร้างไฟล์ชื่อ ssh ใน/boot/ไดเรกทอรี ไฟล์นี้เรียกว่า ssh สามารถมีข้อความหรืออะไรก็ได้ถ้าคุณต้องการ จากนั้นการใช้sudo raspi-config commandบนเทอร์มินัลคุณสามารถเปิดใช้งาน ssh อีกครั้ง

นอกจากนี้ยังแนะนำให้คุณเปลี่ยนรหัสผ่านของคุณหากมันเป็นอะไรที่ง่าย ๆ เช่นรหัสผ่านไปเป็นสิ่งที่ยากต่อการถอดรหัสโดยใช้passwdคำสั่ง


2
"ได้มีการเมื่อเร็ว ๆ นี้จำนวนมากแฮ็คของอุปกรณ์" -> น่าจะเป็นคนจำนวนมากได้ยินเกี่ยวกับเรื่องนี้ แม้ว่า Pis จะไม่เกี่ยวข้อง แต่พวกเขาก็อาจใช้ SSH เป็นค่าเริ่มต้นด้วยการเปิดใช้งานการเข้าถึงบัญชีที่มีสิทธิพิเศษผ่านรหัสผ่าน "รหัสที่ตั้งมาจากโรงงาน" ซึ่งเป็นสิ่งที่ถูกใช้ประโยชน์
goldilocks

1
การโจมตีแทบจะไม่ "เร็ว ๆ นี้" ฉันเคยเห็นความพยายามในการบันทึกในบันทึกของฉันมาประมาณสามปีแล้ว
ทำเครื่องหมาย

อาจจะไม่มากนัก แต่มีการแฮ็คข้อมูลของราสเบอร์รี่พิส!
King Balloonion

2

systemctl วิธีการแก้

หากคุณมีเชลล์บน Pi ผ่านวิธีที่ไม่ใช่ SSH เช่นหน้าจอ + แป้นพิมพ์หรือ UART (ดูโพสต์นี้ ) คุณสามารถเรียกใช้:

sudo systemctl enable ssh
sudo service sshd start

sudo raspi-configแทนการทำโต้ตอบผ่าน

/boot/ssh ไฟล์มายากล

หากคุณยังไม่มีเชลล์บน Pi ให้ใส่เขาการ์ด SD บนโฮสต์ของคุณและสร้างไฟล์วิเศษที่มีชื่อsshไฟล์ในboot/พาร์ติชัน (อันแรก)

บนโฮสต์ Ubuntu มันจะถูกเมาต์โดยอัตโนมัติและคุณสามารถทำได้เพียง:

sudo touch /media/$USER/boot/ssh

ซึ่งคุณสามารถยืนยันด้วย:

lsblk

ซึ่งประกอบด้วย:

mmcblk0     179:0    0  14.4G  0 disk
├─mmcblk0p1 179:1    0  43.9M  0 part /media/ciro/boot
└─mmcblk0p2 179:2    0  14.4G  0 part /media/ciro/rootfs

ทดสอบกับ Raspbian Lite 2018-11-13 การตั้งค่าการทดสอบเต็มรูปแบบอธิบายเพิ่มเติมได้ที่: SSH ถึง RPi โดยไม่ต้องเชื่อมต่อเครือข่าย


0

ใช่ตามที่ @tecraf กล่าวว่าsshถูกปิดใช้งานโดยค่าเริ่มต้น แต่ตำแหน่งการกำหนดค่ามีการเปลี่ยนแปลง วิธีเปิดใช้งาน SSH บนเครื่องของคุณผ่านคอนโซล:

ใส่sudo raspi-configใน terminal ไป5-Interfacing Optionsจากนั้นไปP2-sshกด Enter และใช้เพื่อเปิดหรือปิดtab ssh serverจากนั้นsudo shutdown -r nowให้ทำการรีบูท (การปิดด้านข้าง-hตอนนี้จะไม่รีบูต)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.