เตรียมพร้อมสำหรับ ssh โดยไม่มีหน้าจอ


156

ฉันมี Raspberry Pi รุ่น B อยู่ที่บ้าน แต่ฉันไม่มีหน้าจอ แผนของฉันคือการเชื่อมต่อกับอีเธอร์เน็ตและจากนั้น ssh ลงไป แต่นี่หมายความว่าต้องเตรียมการ์ด SD พร้อมระบบปฏิบัติการ (Debian Squeeze) ก่อน ฉันเห็นสองวิธี:

  1. เตรียม SD ด้วยระบบปฏิบัติการเพื่อให้ RPi เชื่อมต่อกับอีเธอร์เน็ตเสมอภายใต้ที่อยู่ IP คงที่และเปิดใช้งานเซิร์ฟเวอร์ SSH

  2. เตรียม SD ด้วยระบบปฏิบัติการเพื่อให้ RPi เชื่อมต่อกับเครือข่ายเปิดใช้งานเซิร์ฟเวอร์ SSH แล้วเผยแพร่ IP address ของมันเพื่อที่ฉันจะได้เข้าไปในระบบได้

วิธีใดต่อไปนี้ที่ง่ายกว่า และฉันจะทำอย่างไร มีวิธีอื่นอีกไหม?

ฉันมีเครื่องมือดังต่อไปนี้: Ubuntu 10.4, MacOS 10.5, Windows 7 แต่เฉพาะ Ubuntu เท่านั้นที่มี cardreader น่าเสียดายที่ฉันไม่สามารถเข้าถึงตาราง DHCP ของเราเตอร์ของฉันมันปิดอย่างสมบูรณ์


5
มีประโยชน์กัน - RasPi ไม่ได้บูตตามธรรมชาติ (อย่างน้อย Debian, อย่างน้อย) เมื่อเปิดใช้งาน SSH คุณต้องแก้ไขไฟล์ใน / boot / ที่มี SSH ในชื่อเพื่อบู๊ต ฉันรู้ว่านี่ไม่ได้ตอบคำถามของคุณ แต่มันอาจจะเป็นสิ่งที่ทำให้สะดุดต่อไป :)
George Pearce

1
ฉันไม่รู้สึกว่านี่น่าจะเป็นคำตอบ แต่คุณสามารถลองใช้เครื่องมือสแกนพอร์ต
ian.shaun.thomas

10
@iampearce: ในรุ่น debian wheezy เบต้าตอนนี้ ssh จะเปิดใช้งานตามค่าเริ่มต้น
Jon Egerton

5
เสียงฮืด ๆ ปัจจุบันเปิดใช้งาน SSH ตามค่าเริ่มต้น หากคุณมีเซิร์ฟเวอร์ DHCP ในเครือข่ายของคุณเซิร์ฟเวอร์จะทำงานนอกกรอบ
ยาม

1
มีคำตอบทั้งหมดที่คุณต้องการฉันเดา ฉันแค่ต้องการเพิ่มวิธีการค้นหา Pis ในเครือข่ายของฉัน ฉันมักจะมีมากกว่าหนึ่งเครื่องและยังเปิดเครื่องมากกว่า 22 พอร์ต nmap -sP 192.168.0.0/24 | grep Pi -B 2
cee

คำตอบ:


71

หากต้องการเปิดใช้งาน ssh เมื่อเริ่มต้นให้สำรองข้อมูลboot.rcบนพาร์ติชันสำหรับเริ่มระบบบนอิมเมจ SD และแทนที่ด้วยboot_enable_ssh.rc

ฉันไม่รู้เกี่ยวกับเราเตอร์ของคุณ แต่คุณอาจกำหนดค่าให้สำรองที่อยู่ IP คงที่สำหรับที่อยู่ MAC ของ Pi ของคุณ


3
ติดตั้ง ssh บนภาพ Debian Squeeze ที่จัดทำโดยมูลนิธิหรือไม่?
จนถึง B

1
@TillB มันถูกติดตั้งในอิมเมจที่ให้มา แต่มันจะต้องเริ่มต้นด้วยตนเอง
finnw

1
ตกลงพาร์ติชั่นสำหรับบูตคืออะไร? ฉันมีหนึ่งที่มีระบบไฟล์หนึ่งสลับพาร์ทิชันและหนึ่งที่มีไฟล์ start.elf และอื่น ๆ นอกจากนี้ยังมี boot_enable_ssh.rc แต่ไม่มี boot.rc ฉันเปลี่ยนชื่อเป็น boot.rc และทำการบู๊ตแล้ว ฉันพบ RPi ในเครือข่าย (อย่างน้อยฉันคิดว่ามันคือ Pi) แต่ ssh ถูกปิด
จนถึง

1
คุณแน่ใจหรือว่ามันเป็นแบบนั้น งานของฉันโดยเปลี่ยนชื่อเป็น boot.rc ตามที่พบในraspberrypi.stackexchange.com/questions/606/…
David Sykes

5
ฉันบูตภาพอิมเมจ 2012-09-18-wheezy-raspbian.img บน Raspberry Pi ที่ไม่มีหัวขาดใหม่มันบูตอัตโนมัติ sshd และกำหนดค่าตัวเองโดยใช้ DHCP
nos

52
  1. คัดลอกboot_enable_ssh.rcไปยังboot.rcจาก/bootใน Raspberry Pi's rootfs(การ์ด SD)

  2. ยังอยู่ใน Raspberry Pi rootfsให้แก้ไข/etc/network/interfacesเพื่อกำหนดที่อยู่ IP คงที่ (ดังนั้นจึงไม่จำเป็นต้องใช้เซิร์ฟเวอร์DHCP ) ตัวอย่างเช่น,

    auto lo eth0
    iface lo inet loopback
    iface eth0 inet static
        address 192.168.0.202
        netmask 255.255.255.0
        gateway 192.168.0.200
    
  3. บูต Raspberry Pi ของคุณใช้สายเคเบิลอีเธอร์เน็ตเพื่อเชื่อมต่อกับเครือข่ายเดียวกับที่พีซีของคุณเชื่อมต่อกับ (หรือเชื่อมต่อโดยตรงกับพีซีของคุณ) และล็อกอินผ่าน SSH:

    ssh pi@192.168.0.202
    
  4. ติดตั้งเซิร์ฟเวอร์ VNC แบบเบาใน Raspberry Pi ของคุณ:

    sudo apt-get install tightvncserver
    
  5. จากนั้นเริ่มเซิร์ฟเวอร์ VNC (ระบบจะขอให้คุณตั้งรหัสผ่าน):

    vncserver :1 -name RasPi -depth 16 -geometry 1024x768
    
  6. ติดตั้งไคลเอนต์ VNC ในพีซีของคุณ:

    apt-get install xtightvncviewer
    
  7. จากนั้นเชื่อมต่อ Raspberry Pi ของคุณผ่าน VNC จากพีซีของคุณ:

    xtightvncviewer 192.168.0.202:1
    

มันทำงานได้ที่นี่ด้วยวิธีนี้ :)


2
FWIW: OP ถามเกี่ยวกับ ssh - ไม่ใช่เกี่ยวกับ X หรือ VNC
แบรด

ฉันได้ใช้การกำหนดค่า raspberrypi_defconfig ภายใต้ BUILDROOT เพื่อติดตั้งระบบปฏิบัติการบน pi ... ไม่มีไฟล์ boot.rc ในโฟลเดอร์บูต !!! ฉันจะทำอย่างไร
สัตว์ร้าย

36

ไม่มีboot_enable_ssh.rcสิ่งใดใน Raspian บิวด์ปัจจุบัน คุณบู๊ตเมนูกราฟิกที่ดีมีตัวเลือกให้คุณ (รวมถึงว่า SSHD ควรโหลดตอนบู๊ตหรือไม่) จากนั้นให้คุณทิ้งในบรรทัดคำสั่ง

เยี่ยมมากถ้า ... คุณเป็นผู้ใช้แบบกราฟิก

update-rc.dหากคุณไม่ได้คุณจะเหลืออยู่ในตำแหน่งที่คุณต้องทำงานอย่างใดภายนอก ทั้งหมดนี้จริงๆคือการสร้าง symlink ให้กับ/etc/init.d/...สคริปต์ที่จุดต่าง ๆ ใน/etc/rc{0..6}.d/...ระบบแฟ้ม สับสน? ไม่เป็นไร - การทำความเสียหายนั้นง่าย

  1. ฉันสมมติว่าคุณกำลังทำสิ่งนี้จากคอมพิวเตอร์ Linux อย่างน้อยสิ่งที่ใช้ bash หรือสิ่งที่เข้ากันได้ สิ่งที่ฉันแนะนำจะไม่ทำงานจาก Windows หากไม่มี Cygwin (หรืออื่น ๆ ) ใส่การ์ด SD และcdใส่เข้าไป

  2. วิ่ง:

    for i in 2 3 4 5; do sudo ln -s /etc/init.d/ssh etc/rc$i.d/S02ssh; done
    
  3. ถอนติดตั้งและบูต คุณควรมีสิทธิ์เข้าถึง SSH

หากคุณกำลังพยายามค้นหาบนเครือข่ายของคุณ ...

สามตัวเลือกสำหรับคุณ:

  • ใช้ผู้ดูแลระบบของเราเตอร์ของคุณเพื่อค้นหา Netgear ทำได้ดีเป็นพิเศษในการแสดง "อุปกรณ์ที่แนบมา"
  • เสียบมอนิเตอร์และรันifconfig(โกง!)
  • ใช้nmapบนคอมพิวเตอร์เครื่องอื่นเพื่อสแกนหา คุณควรรู้ว่า IP มันมีคร่าวๆ (ต่อ a / 24) ดังนั้นการสแกนจึงเป็นเรื่องง่าย:

    sudo nmap -sV --open 192.168.0.0/24  -p22
    

1
อย่าใช้ nmap สำหรับสิ่งนี้คุณสามารถ ping ที่ออกอากาศและตรวจสอบตาราง ARP
Tamara Wijsman

@TomWijsman คุณหมายถึงการวิ่งping -b 192.168.0หรือเทียบเท่า? ฉันไม่แน่ใจว่ามันใช้งานได้อย่างไรเพราะฉันเพิ่งทดสอบสิ่งนี้กับเราเตอร์สองตัวที่ไม่ประสบความสำเร็จ ดูเหมือนว่าจะถูกบล็อกโดยทั่วไป
Oli

1
@Oli: ไม่เป็นเคอร์เนลของคุณที่ไม่ได้รวบรวมการตอบกลับ ARP ทั้งหมดถือว่าเป็นการสิ้นเปลืองที่จะตรวจสอบแพ็คเก็ตที่เข้ามาทุกครั้งเพื่อดูว่า MAC ของตนอยู่ในแคช ARP อยู่แล้วหรือไม่ ฉันรู้วิธีกำหนดค่านี้; แต่กรณีนี้ใช้ได้ผลดีบน Windows และ Mac OS X ...
Tamara Wijsman

@Oli: ทางเลือกที่ทำงานได้ถ้าระบบของคุณไม่สามารถทำเช่นนี้คือarping; มันทำในสิ่งที่คำสั่ง ping และ arp แยกกันจะถูกกำหนด
Tamara Wijsman

2
@nornagon: arp -aไม่ได้ทำด้วยตัวเอง
Tamara Wijsman

21

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


โอ้ลืมที่จะเพิ่ม: ฉันไม่สามารถเข้าถึงเราเตอร์ของฉันได้ (บริษัท นี้เป็นผู้จัดหาและปิดสนิท) คุณกำลังบอกว่าเปิดใช้งาน Arch ssh อยู่เสมอหรือไม่ เดเบียนล่ะ?
จนถึง B

ฉันคิดว่ามีเพียง Arch เท่านั้นที่มาพร้อมกับ SSHd ที่เปิดใช้งานล่วงหน้า

5
Debian ไม่มีการเปิดใช้งาน SSH โดยค่าเริ่มต้น
Steve Robillard

4
จนถึงทุก distro ที่ฉันติดตั้งใน Pi ของฉันได้เปิดใช้งาน SSH โดยค่าเริ่มต้น ไม่ได้พูดแบบนี้เสมอไป แต่เป็นเรื่องของฉันแล้ว
DaveJohnston

14

หลังจากการโจมตีบ็อตเน็ตขนาดใหญ่ในปี 2559 เนื่องจากอุปกรณ์ IoT ถูกแฮ็คด้วยรหัสผ่านเริ่มต้นอย่างง่ายดาย Raspbian ก็กลับมาอีกครั้งด้วย SSH ที่ถูกปิดใช้งานตามค่าเริ่มต้น ( แหล่งที่มา )

การแก้ไขเป็นเรื่องง่ายสวยคุณก็ต้องสร้างไฟล์ในboot พาร์ทิชัน (ไม่ไดเรกทอรีภายในระบบแฟ้มราก) sshที่เรียกว่า start.elfเพื่อตรวจสอบว่าคุณอยู่ในพาร์ทิชันที่เหมาะสมก็ควรจะมีไฟล์ชื่อ

อย่าลืมเปลี่ยนรหัสผ่านหลังจาก!

ในการค้นหา Pi ของฉันบนเครือข่ายของฉันฉันใช้sudo arp-scan -lแต่sudo nmap -sS --open -O 192.168.1.0/24ก็เป็นตัวเลือกที่ใช้ได้ แต่ช้ากว่า


การโพสต์ของคุณถูกกล่าวถึงเพื่อสร้างชื่อไฟล์ "start.elf" ในขณะที่ URL ต้นทางที่กล่าวถึงเพื่อสร้างชื่อไฟล์ "SSH" ดู: 'ถ้าคุณต้องการเปิดใช้งาน SSH สิ่งที่คุณต้องทำคือใส่ไฟล์ที่เรียกว่า ssh ไดเรกทอรี / boot / ' คุณสามารถตรวจสอบการโพสต์ได้หรือไม่
BastianW

อุ๊ปส์ฉันรีบร้อนเล็กน้อยเมื่อเขียนคำตอบขอขอบคุณสำหรับการระบุจุดที่สับสน
ฟาเอล

13

การใช้อิมเมจเบต้า Debian 7 (Wheezy) จะมีการติดตั้งและเปิดใช้งาน SSH ตามค่าเริ่มต้น คุณเพียงแค่ต้องเชื่อมต่อผ่านที่อยู่ IP ของมัน

มีสองสามวิธีในการค้นหาว่าที่อยู่ IP ใดที่ Raspberry Pi เปิดอยู่โดยไม่ต้องเรียกใช้ifconfigโดยตรงเช่น:

  • หน้าการกำหนดค่าเราเตอร์ของคุณอาจมีหน้าจอระบุที่อยู่ IP สำหรับเครื่องที่เชื่อมต่อ
  • สมาร์ทโฟนส่วนใหญ่มีสแกนเนอร์เครือข่าย Wi-Fi ฟรีที่จะแสดงอุปกรณ์ที่เชื่อมต่อกับเครือข่าย

มันไม่ได้เปิดใช้งานบน MY ภาพ Debian ดังเสียงฮืด ๆ โดยค่าเริ่มต้น ... :(
แมตต์

@ แมท: คุณแน่ใจหรือไม่ - มาตรฐานที่ฉันดาวน์โหลดทางกลับเมื่อมันเปิด
Jon Egerton

ฉันคิดอย่างนั้น ฉันเพิ่งลองใหม่อีกครั้งในเช้านี้ (พร้อมภาพล่าสุด) บางทีฉันอาจจะพลาดบางอย่าง แต่ฉันจำได้ว่าทำสิ่งนี้สองสามครั้งแล้ว
แมตต์

ดูเหมือนจะไม่ใช้ในปี 2560
ฟาเอล

11

วิธีง่ายๆ (ถ้าคุณมีเพียงแป้นพิมพ์)

SSH ไม่ได้เปิดใช้งานโดยค่าเริ่มต้นใน Debian Wheezy (Raspbian) กาลครั้งหนึ่ง SSH ไม่ได้เปิดใช้งานกับภาพ Raspbian ของฉันอย่างแน่นอน เห็นได้ชัดว่า SSH เปิดใช้งานตามค่าเริ่มต้นแล้ว แต่ถ้ามันไม่ได้และคุณติดอยู่อ่าน:

การเปิดใช้งานนั้นง่ายมากง่ายกว่าคำตอบส่วนใหญ่ที่ฉันเคยเห็นที่นี่ถ้าคุณมีแป้นพิมพ์ USB:

  1. เสียบคีย์บอร์ดและบู๊ต RPi หมายเหตุเค้าโครงแป้นพิมพ์เริ่มต้นจะเป็นรูปแบบ QWERTY US แบบมาตรฐานดังนั้นโปรดคำนึงถึง "Y" และ "Z" ของคุณและ "-" และ "/" ของคุณ
  2. รอสักครู่แล้วพิมพ์ "pi" กด Enter จากนั้น "raspberry" และกด Enter
  3. เปิดใช้งาน SSH ด้วย:

    sudo /etc/init.d/ssh start
    
  4. พิมพ์รหัสผ่าน "raspberry" อีกครั้งในกรณีเนื่องจากเป็นsudoคำสั่งแล้วกด Enter

ตอนนี้คุณควรจะสามารถเข้าสู่ RPi ของคุณจากระยะไกลด้วยที่อยู่ IP ในเครือข่ายของคุณ

ดังที่Denis Mitropolskiy กล่าวไว้ยูทิลิตีการกำหนดค่าทำให้การกำหนดค่า SSH ง่ายขึ้น ณ จุดนี้:

sudo raspi-config

เพียงไปที่ตัวเลือก "ssh" โชคดีที่มันใช้งานได้ในเซสชัน SSH ดังนั้นคำสั่งเดียวที่คุณต้องใช้เพื่อ "สุ่มสี่สุ่มห้า" คือคำสั่งแรกข้างต้น


1
คำตอบที่ยอดเยี่ยม แต่ดูเหมือนว่า ssh อาจเปิดใช้งานบนการ์ด SD ล่าสุดที่มาพร้อมกับ Pi สั่งเหมืองเมื่อสัปดาห์ที่แล้วและ ssh เพิ่งจะทำออกมาได้!
ปลาปักเป้า

พวกเขามาพร้อมการ์ด SD ตอนนี้หรือไม่ คุณสั่งซื้อที่ไหน แม้ว่าจะเป็นข่าวดีก็ตาม ฉันคิดว่าจะอัพเกรดเป็นรุ่น B
Matt

4
เพียงความเห็นต่อวิธีแก้ปัญหาที่ตาบอดนี้: ฉันไม่มีแป้นพิมพ์ภาษาอังกฤษ "ดั้งเดิม" (มันเป็นภาษาสโลวีเนีย!) ดังนั้นหากไม่มีraspi-configหรือdpkg-reconfigure การตั้งค่าแป้นพิมพ์ -แป้นพิมพ์ USB ของฉันจะส่ง 'z' แทน 'y' ซึ่งจะมีผลต่อการเข้าสู่ระบบรหัสผ่านคนตาบอด ปัญหาที่คล้ายกันยังคงมีอยู่บนแป้นพิมพ์ที่ไม่ใช่ภาษาอังกฤษอื่น ๆ ! คุณสามารถตรวจสอบอักขระภาษาอังกฤษเริ่มต้นใน Windows เมื่อสลับการตั้งค่าแป้นพิมพ์ / ภาษาแถบจาก 'ภาษาของคุณ' -> 'EN' ในแถบงาน
TomiL

3
@TomiL: จุดดี บนแป้นพิมพ์ภาษาเยอรมัน 'Z' และ 'Y' จะถูกสลับเช่นกัน
Peter Mortensen

1
วิธีนี้ใช้งานได้ดีที่สุดแล้วล่าสุด Raspbian jessie เปิดใช้งาน ssh โดยค่าเริ่มต้นด้วยชื่อผู้ใช้ / รหัสผ่าน pi / raspberry
redDevil

5

ไม่สามารถบอกได้ว่า SSH ทำงานนอกกรอบหรือไม่ แต่เวอร์ชันยูทิลิตี้การตั้งค่าล่าสุดมีคำสั่ง "เปิดใช้งาน SSH" หลังจากนั้นฉันสามารถเชื่อมต่อกับ Raspberry ผ่านเครือข่าย แต่ในการเปิดใช้งานคุณต้องมีจอภาพอยู่แล้ว


1
นี่เป็นวิธีที่ง่ายที่สุด คุณไม่จำเป็นต้องมีจอภาพเพื่อเปิดใช้งานหากคุณมีแป้นพิมพ์ ใช้คำสั่งเดียวเท่านั้นซึ่งคุณสามารถเรียกใช้แบบสุ่ม
แมตต์

5

ข้อแม้หนึ่ง: ด้วยArch Linuxสิ่งนี้ใช้ได้กับฉันก็ต่อเมื่อฉันต่อ Ethernet ก่อนที่จะบูต Raspberry Pi (จากนั้นจะทำงานได้ดี: sshd ถูกเปิดใช้งานตามค่าเริ่มต้น) หากฉันบูตครั้งแรกจากนั้นเชื่อมต่อสายเคเบิลอีเธอร์เน็ต Raspberry Pi จะไม่ติดต่อกับเซิร์ฟเวอร์ DHCP เพื่อรับที่อยู่ IP


4

ไม่มีเราเตอร์ + ไม่มีหน้าจอ + สาย Ethernet ปกติ + RPI 2 + Raspbian Lite 2018-11-13 + โฮสต์ Ubuntu 18.10

ก่อนอื่นเราต้องเปิดใช้งานเซิร์ฟเวอร์ SSH บน Pi ซึ่งถูกปิดใช้งานโดยค่าเริ่มต้นเพื่อความปลอดภัย

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

sudo systemctl enable ssh
sudo service sshd start

ตามที่อธิบายไว้ที่: SSH ไม่ทำงานกับการติดตั้งใหม่ซึ่งยังคงมีอยู่ในบูท

มิฉะนั้นให้ใส่การ์ด 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

หากคุณไม่เปิดใช้งาน SSHD daemon บน Pi การเชื่อมต่อ SSH จะล้มเหลวด้วย:

ssh: connect to host 10.42.0.160 port 22: Connection refused

เมื่อเราลองในภายหลัง

หลังจากเปิดใช้งานเซิร์ฟเวอร์ SSH

ถัดไปบู๊ต Pi และเชื่อมต่อสายเคเบิลอีเธอร์เน็ตจากแล็ปท็อปของคุณโดยตรงไปยัง Pi:

ป้อนคำอธิบายรูปภาพที่นี่

บน Ubuntu 17.04 เพื่อแก้ไขข้อผิดพลาดนี้ตามที่ระบุไว้ในคำตอบนี้คุณต้อง:

sudo apt-get install dnsmasq-base

บนโฮสต์ให้เปิดตัวจัดการเครือข่าย:

nm-connection-editor

แล้วก็ไป:

  1. + ลงชื่อ (เพิ่มการเชื่อมต่อใหม่)
  2. อีเธอร์เน็ต
  3. สร้าง
  4. การตั้งค่า IPv4
  5. วิธีการ: แชร์กับคอมพิวเตอร์เครื่องอื่น
  6. ตั้งชื่อที่ดีสำหรับมัน
  7. บันทึก

ป้อนคำอธิบายรูปภาพที่นี่

ค้นหา IP ของ Pi บนโฮสต์:

cat /var/lib/misc/dnsmasq.leases

แสดงผลดังนี้:

1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69

10.42.0.160 เป็น IP แล้วตามปกติ:

ssh pi@10.42.0.160

ฉันยังมีต่อไปนี้ในของฉัน.bashrc:

piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )

จากภายใน Pi สังเกตว่ามันสามารถเข้าถึงอินเทอร์เน็ตได้ตามปกติผ่านอินเทอร์เฟซอื่นของโฮสต์ของคุณ:

ping google.com

ตัวอย่างเช่นบนแล็ปท็อปของฉัน Pi รับ Ethernet แต่โฮสต์นั้นเชื่อมต่อกับอินเทอร์เน็ตผ่าน WiFi ด้วย

สายครอสโอเวอร์จะไม่จำเป็นต้องใช้ถ้าการ์ดเครือข่ายโฮสต์สนับสนุนAuto MDI-X เป็นกรณีนี้สำหรับฮาร์ดแวร์ล่าสุดรวมทั้งตัวอย่าง 2012 Lenovo T430 ผมทดสอบด้วยซึ่งมี "การเชื่อมต่อIntel® 82579LM Gigabit Network" ซึ่งเอกสารการสนับสนุนสำหรับ Auto MDI-X

ตอนนี้คุณยังสามารถ:

ตัวแปลง USB อนุกรม UART

นี่เป็นอีกทางเลือกหนึ่งสำหรับ SSH หากคุณต้องการรับเชลล์บน Pi: https://en.wikipedia.org/wiki/Serial_port

สิ่งนี้ไม่ได้ใช้ SSH หรือระบบเครือข่าย แต่ค่อนข้างเก่าง่ายกว่าน่าเชื่อถือมากขึ้นแบนด์วิดท์ต่ำกว่าและอินเตอร์เฟสระยะทางอนุกรมที่ต่ำกว่า Pi จะไม่สามารถเข้าถึงอินเทอร์เน็ตได้ด้วยวิธีนี้

คอมพิวเตอร์เดสก์ท็อปยังมีพอร์ตอนุกรมซึ่งคุณสามารถเชื่อมต่อสายโดยตรงกับสายได้ แต่คอมพิวเตอร์เหล่านี้ซ่อนอยู่ในแล็ปท็อปส่วนใหญ่ดังนั้นเราจึงจำเป็นต้องซื้ออะแดปเตอร์ USB ราคาถูก ที่นี่ฉันใช้แล้ว: https://www.amazon.co.uk/gp/product/B072K3Z3TLดูเพิ่มเติมที่: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttyS0-ttyusb0 และ ttyama0 ในลินุกซ์ / 367882 # 367882

ก่อนอื่นเสียบการ์ด SD บนโฮสต์และแก้ไขconfig.txtไฟล์ที่มีอยู่ในพาร์ติชันแรกเพื่อเพิ่ม:

enable_uart=1

ตามที่อธิบายไว้ที่: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

พาร์ติชั่นแรกนี้มี bootloader, ไฟล์การตั้งค่าและเคอร์เนล (Linux / ของคุณ), config.txtเป็นหนึ่งในนั้น พาร์ติชั่นที่สองมีระบบไฟล์รูท Linux จริง

ตอนนี้เชื่อมต่อคอมพิวเตอร์ของคุณกับ Pi เป็น:

ป้อนคำอธิบายรูปภาพที่นี่

คุณจะต้องแนบ 3 สาย:

  • จากพื้นถึงพื้น
  • Tx บน Pi ถึง Rx บน USB เข้ากับพอร์ตอนุกรม
  • Rx บน Pi ถึง Tx บน tye USB เข้ากับพอร์ตอนุกรม

นอกจากนี้ยังมีการบันทึกไว้ที่: https://www.raspberrypi.org/documentation/usage/gpio/README.md

ระวังอย่าเชื่อมโยงกราวด์กับ 5V ฉันได้เผาชิป UART ไปยัง USB 2 ตัวแล้วโดยทำเช่นนั้น!

คุณไม่จำเป็นต้องเชื่อมต่อ 5V กับ 5V เลย ฉันคิดว่าคุณสามารถให้พลังงาน Pi ของคุณแบบนั้นได้ แต่ฉันอ่านแล้วว่านี่เป็นความคิดที่ไม่ดีเพียงใช้แหล่งพลังงาน USB ปกติ

สุดท้ายให้เสียบด้าน USB ของช่องเสียบเข้ากับโฮสต์คอมพิวเตอร์ของคุณและรับเชลล์ด้วย:

sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200

Ctrl-A \ทางออกด้วย

นี่คือวิดีโอโดย Adafruit แสดง: https://www.youtube.com/watch?v=zUBPeoLW16Q


3

ถ้าคุณใช้ Debian แล้วมันค่อนข้างง่ายถ้าคุณสามารถให้ยืมหน้าจอและเครือข่ายสำหรับ RPi ของคุณเพียงไม่กี่นาทีจากเพื่อน ถ้าไม่คุณสามารถทดสอบคำสั่งสำหรับ 'nmap' และ 'ssh' จากโฮสต์ Ubuntu ของคุณ

เพียงตรวจสอบว่าแพ็คเกจ openssh-server นั้นได้รับการติดตั้งแล้ว aptitude install openssh-serverคุณทำอย่างนั้นจากบรรทัดคำสั่งด้วย คุณสามารถตรวจสอบหรือเปลี่ยนชื่อ RPi เมื่อคุณเข้าสู่เครื่อง นอกจากนี้คุณยังสามารถตรวจสอบว่าแพคเกจavahi-utilsและมีการติดตั้งเพียงแค่พยายามavahi-daemonaptitude install avahi-utils

Avahi แพคเกจ / โปรแกรมแอปเปิ้ลจะดำเนินการ protocoll mDNS / DNS-SD ซึ่งจะมีการประกาศตัวเองไปยังคอมพิวเตอร์เครื่องอื่น ๆ ที่ใช้ว่า protocoll localคอมพิวเตอร์ในโดเมน ดังนั้นหากเครื่องของคุณเรียกว่าพยายามที่จะเชื่อมต่อกับเครื่องด้วยrpi-machinerpi-machine.local

คุณสามารถเช็คอินไฟล์/etc/nsswitch.confเพื่อดูว่าคุณมีบรรทัดนี้หรือไม่:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

ทั้งเครื่อง Apple และ Ubuntu ของคุณควรใช้สิ่งนี้ เครื่อง MS Windows 7 ของคุณไม่ได้ทำเช่นนั้น บนเครื่อง Ubuntu คุณสามารถลองใช้คำสั่งนี้:

avahi-browse --all

หรือ

avahi-browse _ssh._tcp

จากนั้นคุณควรรับเครื่องและบริการทั้งหมดของคุณเช่น SSH และ HTTP ที่ระบุไว้

คุณสามารถลองติดตั้งแพ็คเกจnmapในเครื่อง Ubuntu ของคุณได้ จากนั้นคุณสามารถตรวจสอบว่าคุณใช้ net ใดอยู่ด้วยคำสั่งip route listเพื่อดู IP-net ที่คุณใช้ ตัวอย่างเช่นบนเครื่องของฉันฉันสามารถได้รับบางสิ่งเช่นนี้ (นี่คือจาก example.com ดังนั้นอย่าใช้มัน):

192.0.43.0/24 dev eth0  proto kernel  scope link  src 192.0.43.1  metric 1

บอกฉันว่าฉันอยู่ในสุทธิและเราเตอร์192.0.43.0/24 192.0.43.1ดังนั้นหากคุณเรียกใช้คำสั่งnmap 192.0.43.0/24จะพยายามค้นหาเครื่องทั้งหมดในเน็ตของคุณและบอกพอร์ตที่เปิดอยู่ ค้นหาพอร์ต22/tcpเนื่องจากเป็นเซิร์ฟเวอร์ ssh


3

ฉันจัดการเพื่อตั้งค่า Raspberry PI โดยไม่มี Screen หรือ Keyboard โดยใช้ขั้นตอนต่อไปนี้:

  1. ดาวน์โหลดภาพล่าสุดของเดเบียน-ปี่ / raspbian เอื้อ netinst raspbian-ua-netinst-v1.0.7.img.bz2หนึ่งในปัจจุบันคือ ไฟล์ที่ดาวน์โหลดมีขนาดประมาณ 17 MB เท่านั้น

  2. ดาวน์โหลด " แอป Apple Pi Baker " และใช้ซอฟต์แวร์นี้เพื่อถ่ายโอนภาพไปยังการ์ด SD ของคุณ

    ApplePiBaker

  3. ใส่การ์ด SD ลงใน PI ของคุณและหลังจากนั้นประมาณ 15 นาที Raspbian ล่าสุดจะถูกติดตั้ง

  4. ใช้Fing iPhone Appที่ผมค้นพบ IP ของ PI 192.168.1.13ซึ่งเป็นในกรณีของฉัน

    IP

  5. ตอนนี้ฉันสามารถ SSH กับ IP ที่เป็นเช่นนั้น:

    # Password = raspbian
    ssh root@192.168.1.13 
    

และ Voila ฉันสามารถเข้าถึง SSH ได้โดยไม่ต้องทำการกำหนดค่าที่น่าเบื่อ

FYI: raspbian-ua-netinstมีการกำหนดค่าขั้นสูงเพิ่มเติมดังนั้นโปรดตรวจสอบ Readme หากคุณต้องการปรับการตั้งค่าเริ่มต้นบางอย่าง

การเข้าถึง ssh


2

หนึ่งในวิธีที่ดีที่สุดในการเชื่อมต่อหลังจากการกำหนดค่าเริ่มต้นคือการทำให้ avahi-daemon ทำงานบน Raspberry Pi

เมื่อคุณติดตั้ง avahi-daemon บน Raspberry Pi และBonjourบนโฮสต์คอมพิวเตอร์คุณสามารถเข้าสู่ระบบโดยใช้raspberrypi.localเป็นชื่อโฮสต์ ดังนั้นไม่จำเป็นต้องกำหนดค่าที่อยู่ IPไม่ว่าจะเป็นแบบคงที่หรือแบบไดนามิก

ในการติดตั้ง avahi-daemon บน Raspberry Pi:

sudo apt-get update
sudo apt-get install libnss-mdns

และถ้าคุณมีiTunesติดตั้งบนคอมพิวเตอร์ที่เป็นโฮสต์แล้วเพียงแค่ใส่raspberrypi.localในฉาบ , อื่นติดตั้ง Bonjour จากที่นี่ ตรวจสอบบทช่วยสอนนี้สำหรับข้อมูลเพิ่มเติม


2

คุณอาจต้องการraspbian-ua-netinstลองใช้: คุณสามารถค้นหาได้โดยคลิกที่นี่มันเป็น netinstaller Raspbian ที่ไม่มีการดูแลน้อยที่สุดสำหรับ Raspberry Pi รุ่น 1B, 1B + และ 2B ไม่จำเป็นต้องใช้หน้าจอหรือคีย์บอร์ด README.mdพวกเขามีคู่มือการติดตั้งที่ดีเยี่ยมใน

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


2

สำหรับ Raspbian ฉันพบว่าบทช่วยสอนนี้มีประโยชน์มาก หลังจากดำเนินการตามขั้นตอนที่อธิบายไว้ในนั้นฉันก็สามารถที่จะ SSH จาก Windows 10 แล็ปท็อปของฉันไปที่ราสเบอร์รี่ PI ของฉันกับผู้ใช้และรหัสผ่านpiraspberry

โดยเฉพาะอย่างยิ่งนี่คือส่วนที่เกี่ยวข้อง:

  • ตรวจสอบให้แน่ใจว่า Raspberry Pi ปิดการทำงานแล้วและนำการ์ด SD ออก

  • ใส่ SD-Card ลงในเครื่องอ่านการ์ดและเสียบเข้ากับแล็ปท็อปของคุณ

  • ค้นหาไดรฟ์และคุณควรค้นหาไฟล์ต่าง ๆ บนการ์ด (โปรดจำไว้ว่ามันเล็กกว่าที่คุณคาดไว้มากเพราะมันเป็นเพียงส่วนบูทของการ์ด (ส่วนที่เหลือนั้นซ่อนอยู่))

  • ทำสำเนาของ cmdline.txt และเปลี่ยนชื่อเป็น cmdline.normal

  • แก้ไข cmdline.txt และเพิ่มที่อยู่ IP ท้าย (ให้แน่ใจว่าคุณไม่ได้เพิ่มบรรทัดพิเศษ)

สำหรับการตั้งค่าเครือข่ายที่ได้รับที่อยู่ IP โดยอัตโนมัติให้ใช้ที่อยู่ในช่วง 169.254.XX (169.254.0.0 - 169.254.255.255):

ip=169.254.0.2

สำหรับการตั้งค่าเครือข่ายที่มีการแก้ไขที่อยู่ IP ให้ใช้ที่อยู่ที่ตรงกับที่อยู่แล็ปท็อป / คอมพิวเตอร์ยกเว้นตัวเลขหลักสุดท้าย

ip=192.168.0.2

ให้แน่ใจว่าคุณจดที่อยู่ IP นี้ไว้ (คุณจะต้องใช้ทุกครั้งที่คุณต้องการเชื่อมต่อโดยตรงกับ Raspberry Pi)

  • ทำสำเนาใหม่ของ cmdline.txt และเปลี่ยนชื่อเป็น cmdline.direct

  • หากต้องการสลับระหว่างการกำหนดค่าเพียงแค่เปลี่ยน cmdline.txt ด้วย cmdline.normal หรือ cmdline.direct (หรือใช้คำสั่งในตัวเลือก 2 เพื่อทำโดยตรงกับ Raspberry Pi - การเปลี่ยนแปลงจะมีผลในครั้งต่อไปที่คุณเปิดเครื่อง)

  • คืนการ์ดไปที่ Raspberry Pi ต่อสายเคเบิลเครือข่ายที่ต่อเข้ากับคอมพิวเตอร์และ Raspberry Pi แล้วเปิดเครื่อง

ทราบต่อไปนี้:

  • คุณจะต้องรอให้คอมพิวเตอร์ของคุณตรวจจับการตั้งค่าเครือข่ายให้เสร็จสิ้น (คุณอาจเห็นไอคอนเครือข่ายขนาดเล็กกระพริบในถาดระบบของคุณในขณะที่ทำหรือเปิดการตั้งค่าเครือข่ายเพื่อดูเมื่อเสร็จสิ้นและมีที่อยู่ IP) - ใช้เวลาประมาณ 1/2 นาที คอมพิวเตอร์ของคุณอาจรายงานการเชื่อมต่อว่า“ มีการ จำกัด หรือไม่มีการเชื่อมต่อ” เมื่อเชื่อมต่อกับ Raspberry Pi ด้วยวิธีนี้นี่เป็นเรื่องปกติตามที่ระบุว่าเป็นการเชื่อมต่อคอมพิวเตอร์โดยตรงกับการเชื่อมต่อคอมพิวเตอร์มากกว่าเครือข่ายมาตรฐาน

  • หากคุณลืมหรือตัดสินใจที่จะไม่เสียบสายเคเบิลเครือข่าย Raspberry Pi จะรอ 2 นาที (หรือจนกว่าคุณจะเชื่อมต่อสายเคเบิล) ก่อนที่จะเสร็จสิ้นการเริ่มต้น (ดังนั้นหากคุณมีเพียงแป้นพิมพ์และจอมอนิเตอร์คุณต้องรอ !)

  • หากคุณใช้อะแดปเตอร์เครือข่ายแบบใช้สายหลายสาย (เช่นการใช้ด็องเกิล USB-LAN พิเศษ) บนคอมพิวเตอร์ของคุณคุณอาจพบว่าคุณต้องถอดสายเคเบิลเครือข่ายอื่นออกแล้วติดตั้งใหม่อีกครั้ง (เครื่อง Windows XP ของฉันต้องใช้สิ่งนี้ )


2

เนื่องจากฉันมี Pis อื่นที่ฉันสามารถเชื่อมต่อได้ฉันจึงโกง

ฉันนำการ์ด Micro SD ออกจาก Pi ที่จะไม่ให้ฉันเชื่อมต่อและวางไว้ในตัวอ่าน USB บน Pis ที่ทำงานได้

ฉันติดตั้งมันกับโฟลเดอร์ทดสอบ ( sudo mount /dev/sda2 /mnt/test) จากนั้นchroot /mnt/testให้ถือว่าเป็นเชลล์ใหม่

จากนั้นผมก็เปิดใช้งาน SSH systemctl enable sshด้วย นำการ์ดออกมาหลังจากถอนการติดตั้งบู๊ต Pi แล้วเปิดพอร์ต SSH และเข้าถึงได้

ทำงานบนเดเบียนฉันมั่นใจในsystemdระบบสไตล์อื่น ๆเช่นกัน

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