คุณควรตั้งค่าการยืนยันตัวตนด้วยคีย์ให้กับเครื่องทางไกล ดังนั้นผู้ใช้จึงไม่จำเป็นต้องดำเนินการใดๆ
สร้างคีย์สาธารณะและส่วนตัวสำหรับเครื่องของคุณ
คีย์เหล่านี้จะใช้ใน ISO ที่คุณกำหนดเอง ระวังผลกระทบด้านความปลอดภัย ใครก็ตามที่ได้รับ USB แบบกำหนดเองของคุณจะสามารถลงชื่อเข้าใช้เครื่องระยะไกลของคุณได้
ดำเนินการคำสั่งต่อไปนี้บนเครื่องของคุณ (เช่น ไม่ได้อยู่ใน Cubic)
ซีดี ~
ssh-keygen -t อาร์เอสเอ
ยอมรับค่าเริ่มต้น ผลลัพธ์จะมีลักษณะดังนี้
กำลังสร้างคู่คีย์ rsa สาธารณะ/ส่วนตัว
ป้อนไฟล์ที่จะบันทึกคีย์ (/home/n00dles/.ssh/id_rsa):
ป้อนข้อความรหัสผ่าน (ว่างสำหรับไม่มีข้อความรหัสผ่าน):
ป้อนข้อความรหัสผ่านเดิมอีกครั้ง:
ข้อมูลประจำตัวของคุณได้รับการบันทึกไว้ใน /home/n00dles/.ssh/id_rsa
รหัสสาธารณะของคุณได้รับการบันทึกไว้ใน /home/n00dles/.ssh/id_rsa.pub
ลายนิ้วมือที่สำคัญคือ:
SHA256:G48dcTOXpUhzWxuzwn8pgdOTP9WmlLtXBCJkkiSEywk n00dles@LOCAL
ภาพสุ่มของคีย์คือ:
+---[อาร์เอสเอ 3072]----+
| xxxxxx x xxx|
| x x xxxxxxxxxxxx|
| x x xxxxxxx|
| x xxxxxx|
| x x x xxxx|
| x x xxx|
| x x x x x|
| x |
| x |
+----[SHA256]-----+
ตั้งค่าการเข้าสู่ระบบระยะไกล
คัดลอกรหัสสาธารณะไปยังเครื่องระยะไกล ระวังผลกระทบด้านความปลอดภัย ซึ่งจะอนุญาตให้มีการเชื่อมต่อระยะไกลจากคอมพิวเตอร์เครื่องใดก็ได้โดยใช้คีย์ส่วนตัวที่เกี่ยวข้อง
ssh-copy-id -i .ssh/id_rsa.pub user@host
สร้างใหม่ known_hosts
ไฟล์ที่คุณจะคัดลอกไปยัง ISO ที่กำหนดเอง สิ่งนี้จะทำให้สภาพแวดล้อม Live สามารถเชื่อมต่อกับเครื่องระยะไกลโดยไม่ต้องแจ้งให้ผู้ใช้ยืนยัน
สำรองข้อมูลปัจจุบันของคุณชั่วคราว known_hosts
ไฟล์. อย่าลืมเปลี่ยน n00dles@REMOTE
และ REMOTE_LOCATION_PATH
เท่าที่จำเป็น
mv ~/.ssh/known_hosts ~/.ssh/known_hosts.original
# ลงชื่อเข้าใช้เครื่องระยะไกลเพื่อสร้างไฟล์ `known_hosts` ใหม่โดยอัตโนมัติ
sudo mkdir /mnt/remote
sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote/
ลายนิ้วมือของคีย์ ECDSA คือ SHA256:XXXX
คุณแน่ใจหรือไม่ว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่/[ลายนิ้วมือ]) ใช่
# ยกเลิกการต่อเชื่อมเครื่องระยะไกล
fusermount -u /mnt/remote
sudo rmdir /mnt/remote
# บันทึกไฟล์known_hosts ใหม่
mv ~/.ssh/known_hosts ~/
# ย้อนกลับไฟล์known_hosts ดั้งเดิม
mv ~/.ssh/known_hosts.original ~/.ssh/known_hosts
ปรับแต่ง ISO โดยใช้ Cubic
เปิด Cubic และทำสิ่งต่อไปนี้ในหน้า Terminal
ตรวจสอบให้แน่ใจ sshfs
ถูกติดตั้งเพื่อให้เราสามารถเชื่อมต่อกับเครื่องระยะไกลได้
ฉลาดติดตั้ง sshfs
คัดลอกคีย์และใหม่ known_hosts
ไฟล์ไปยังระบบปฏิบัติการที่กำหนดเอง
ซีดี / etc / skel
mkdir .ssh
chmod u=rwx,g=,o= .ssh
ซีดี .ssh
เปิดไฟล์เบราว์เซอร์เช่น Nautilus และนำทางไปยังเครื่องของคุณ ~/.ssh
ไดเรกทอรี
เลือก id_rsa
และ id_rsa.pub
แล้วลากไปยังหน้าต่าง Cubic เพื่อคัดลอกไปยังไดเร็กทอรีปัจจุบัน /etc/skel.ssh
.
เปิดไฟล์เบราว์เซอร์เช่น Nautilus และไปที่โฮมไดเร็กตอรี่ของคุณ
เลือกใหม่ known_hosts
ไฟล์แล้วลากไปยังหน้าต่าง Cubic เพื่อคัดลอกไปยังไดเร็กทอรีปัจจุบัน /etc/skel/.ssh
.
ตรวจสอบให้แน่ใจว่าตั้งค่าการอนุญาตอย่างถูกต้องสำหรับไฟล์เหล่านี้ สิ่งนี้สำคัญมาก ใน Cubic ให้ดำเนินการต่อไปนี้:
chmod u=rw,g=,o= id_rsa
chmod u=rw,g=r,o=r id_rsa.pub
chmod u=rw,g=r,o=rknown_hosts
ls -la
-rw------- 1 รูทรูท 2602 7 มิ.ย. 09:35 id_rsa
-rw-r--r-- 1 รูทรูท 566 7 มิ.ย. 09:35 น. id_rsa.pub
-rw-r--r-- 1 รูทรูท 222 มิ.ย. 7 09:35known_hosts
สร้างจุดเชื่อมต่อสำหรับตำแหน่งระยะไกล ตรวจสอบให้แน่ใจว่าผู้ใช้ทั้งหมดสามารถใช้งานได้ และเพิ่มชื่อลิงก์ ระยะไกล
ในโฮมไดเร็กทอรีของผู้ใช้แต่ละคน
mkdir /mnt/รีโมท
chmod a+rw /mnt/remote
ln -s /mnt/remote /etc/skel/รีโมท
สร้างสคริปต์เพื่อเมานต์ตำแหน่งระยะไกล
นาโน /opt/mount_remote.sh
เพิ่มสิ่งต่อไปนี้ในสคริปต์ อย่าลืมเปลี่ยน n00dles@REMOTE
และ REMOTE_LOCATION_PATH
เท่าที่จำเป็น
#!/bin/bash
# ติดตั้งตำแหน่งระยะไกล
# หากต้องการเมาต์ให้ใช้: sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote
# หากต้องการยกเลิกการต่อเชื่อมใช้: fusermount -u /mnt/remote
สำหรับฉันใน {1..5}; ทำ
ถ้า mountpoint /mnt/remote; แล้ว
echo "[email protected]:/REMOTE_LOCATION_PATH ติดตั้งอยู่"
หยุดพัก
อื่น
# พยายามเมานต์ตำแหน่งระยะไกลเป็น /mnt/remote
echo "พยายาม # $i เพื่อเมานต์ [email protected]:/REMOTE_LOCATION_PATH"
นอน $i
sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote
ไฟ
เสร็จแล้ว
ถ้า mountpoint /mnt/remote; แล้ว
echo "ติดตั้ง [email protected]:/REMOTE_LOCATION_PATH สำเร็จแล้ว"
อื่น
echo "ไม่สามารถเมานต์ [email protected]:/REMOTE_LOCATION_PATH"
ไฟ
พิมพ์ CTRLเอ็กซ์, วาย, เข้า เพื่อบันทึกไฟล์
คุณสามารถใช้ตัวแปรสภาพแวดล้อมเช่น $บ้าน
ในสคริปต์ หากคุณต้องการ
ทำให้สคริปต์ทำงานได้
chmod +x /opt/mount_remote.sh
สร้างไฟล์เริ่มต้นอัตโนมัติที่จะเรียกใช้สำหรับผู้ใช้แต่ละคนหลังจากเข้าสู่ระบบ
นาโน ~/mount_remote.desktop
สำหรับ XUbuntu 20.04+ หรือเวอร์ชันเก่ากว่าของ Ubuntu ให้เพิ่มสิ่งต่อไปนี้ในไฟล์
[รายการเดสก์ท็อป]
การเข้ารหัส=UTF-8
เวอร์ชัน=0.9.4
Type=ใบสมัคร
ชื่อ = mount_remote
ความคิดเห็น = เมานต์ตำแหน่งระยะไกล
Exec=/opt/mount_remote.sh
OnlyShowIn = XFCE;
รันฮุค=0
StartupNotify=เท็จ
เทอร์มินัล = เท็จ
ซ่อน = เท็จ
สำหรับ Ubuntu 20.04+ ให้เพิ่มสิ่งต่อไปนี้ในไฟล์
[รายการเดสก์ท็อป]
Type=ใบสมัคร
Exec=/opt/mount_remote.sh
ซ่อน = เท็จ
NoDisplay=เท็จ
X-GNOME-เปิดใช้การเริ่มอัตโนมัติ=จริง
Name[en_US]=เมานต์รีโมต
ชื่อ = Mount Remote
Comment[en_US]=เมานต์ตำแหน่งระยะไกล
ความคิดเห็น = เมานต์ตำแหน่งระยะไกล
พิมพ์ CTRLเอ็กซ์, วาย, เข้า เพื่อบันทึกไฟล์
คุณสามารถเพิ่ม เทอร์มินัล=จริง
ไปที่ *.เดสก์ทอป
ไฟล์สำหรับการดีบัก แต่ตำแหน่งระยะไกลจะถูกยกเลิกการต่อเชื่อมทันทีเมื่อหน้าต่างเทอร์มินัลปิดโดยอัตโนมัติ
ย้ายไฟล์ autostart ไปยังตำแหน่งที่ถูกต้อง คุณมีสองทางเลือก
หากคุณต้องการใช้ไฟล์ autostart ส่วนกลาง ให้ย้ายไปที่ /etc/xdg/autostart
.
mv ~/mount_remote.desktop /etc/xdg/autostart
หากคุณต้องการให้ผู้ใช้แต่ละรายมีสำเนาไฟล์ autostart ของตนเอง ให้ย้ายไปที่ /etc/skel/.config/autostart
. (ผู้ใช้จะสามารถลบไฟล์นี้ได้เนื่องจากไฟล์จะถูกวางไว้ในโฮมโฟลเดอร์)
mkdir -p /etc/skel/.config/autostart
mv ~/mount_remote.desktop /etc/skel/.config/autostart
ปรับแต่งระบบปฏิบัติการของคุณต่อไป และสร้าง ISO ใหม่
การทดสอบ
หากคุณใช้ชื่อโฮสต์ระยะไกลแทนที่อยู่ IP เมื่อคุณทดสอบ ISO ที่สร้างขึ้น ตรวจสอบให้แน่ใจว่าการแก้ไข DNS ใช้งานได้ ใน VirtualBox ฉันมักจะตั้งค่าเครือข่ายให้ใช้ "Bridge Adapter" แทนอะแดปเตอร์ "NAT" เริ่มต้น