Bạn nên thiết lập xác thực dựa trên khóa cho máy từ xa để không cần tương tác với người dùng.
Trong hướng dẫn bên dưới, hãy thay thế các giá trị sau nếu cần.
Tạo khóa công khai và khóa riêng cho máy cục bộ của bạn.
Các phím này sẽ được sử dụng trong ISO tùy chỉnh của bạn. Hãy nhận biết các tác động bảo mật. Bất kỳ ai nắm giữ USB tùy chỉnh của bạn đều có thể đăng nhập vào máy từ xa của bạn.
Thực hiện các lệnh sau trên máy cục bộ của bạn (ví dụ: không phải ở dạng khối).
đĩa ~
ssh-keygen -t rsa
Chấp nhận các giá trị mặc định. Đầu ra sẽ trông giống như thế này.
Tạo cặp khóa rsa công khai/riêng tư.
Nhập tệp để lưu khóa (/home/n00dles/.ssh/id_rsa):
Nhập cụm mật khẩu (trống nếu không có cụm mật khẩu):
Nhập lại cùng một cụm mật khẩu:
Nhận dạng của bạn đã được lưu trong /home/n00dles/.ssh/id_rsa
Khóa công khai của bạn đã được lưu trong /home/n00dles/.ssh/id_rsa.pub
Dấu vân tay chính là:
SHA256:G48dcTOXpUhzWxuzwn8pgdOTP9WmlLtXBCJkkiSEywk n00dles@LOCAL
Hình ảnh ngẫu nhiên của khóa là:
+---[RSA 3072]----+
| xxxxx x xx|
| x x xxxxxxxxxx|
| x x xxxxxxx|
| x xxxxxx|
| x x x xxxx|
| x x xxx|
| x x x x x|
| x |
| x |
+----[SHA256]-----+
Thiết lập đăng nhập từ xa.
Sao chép khóa chung vào máy từ xa. Hãy nhận biết các tác động bảo mật. Điều này sẽ cho phép kết nối từ xa từ bất kỳ máy tính nào bằng khóa riêng tư tương ứng.
ssh-copy-id -i .ssh/id_rsa.pub user@host
Tạo một cái mới known_hosts
tệp mà bạn sẽ sao chép vào ISO tùy chỉnh. Điều này sẽ cho phép môi trường Live kết nối với máy từ xa mà không cần nhắc người dùng xác nhận.
Sao lưu tạm thời hiện tại của bạn known_hosts
tập tin. Nhớ thay n00dles@REMOTE
và REMOTE_LOCATION_PATH
khi cần thiết.
mv ~/.ssh/known_hosts ~/.ssh/known_hosts. original
# Đăng nhập vào máy từ xa để tự động tạo tệp `known_hosts` mới.
sudo mkdir /mnt/từ xa
sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote/
Dấu vân tay khóa ECDSA là SHA256:XXXX.
Bạn có chắc chắn muốn tiếp tục kết nối (có/không/[vân tay]) không? Vâng
# Ngắt kết nối máy từ xa.
fusermount -u /mnt/remote
sudo rmdir /mnt/từ xa
# Lưu tập tin known_hosts mới.
mv ~/.ssh/known_hosts ~/
# Hoàn nguyên tệp known_hosts ban đầu.
mv ~/.ssh/known_hosts. original ~/.ssh/known_hosts
Tùy chỉnh ISO bằng Cubic.
Khởi chạy Cubic và thực hiện các thao tác sau trên trang Terminal.
Bảo đảm sshfs
được cài đặt để chúng tôi có thể kết nối với các máy từ xa.
apt cài đặt sshfs
Sao chép các phím và cái mới known_hosts
tập tin vào hệ điều hành tùy chỉnh.
cd /etc/skel
mkdir .ssh
chmod u=rwx,g=,o= .ssh
cd .ssh
Mở một trình duyệt tệp chẳng hạn như Nautilus và điều hướng đến tệp cục bộ của bạn ~/.ssh
danh mục.
Lựa chọn id_rsa
và id_rsa.pub
và kéo chúng vào cửa sổ Cubic để sao chép chúng vào thư mục hiện tại, /etc/skel.ssh
.
Mở trình duyệt tệp chẳng hạn như Nautilus và điều hướng đến thư mục chính của bạn.
Chọn cái mới known_hosts
tập tin và kéo nó vào cửa sổ Cubic để sao chép nó vào thư mục hiện tại, /etc/skel/.ssh
.
Đảm bảo rằng các quyền được đặt chính xác cho các tệp này; cái này rất quan trọng. Trong Cubic, thực hiện như sau:
chmod u=rw,g=,o= id_rsa
chmod u=rw,g=r,o=r id_rsa.pub
chmod u=rw,g=r,o=r known_hosts
ls -la
-rw------- 1 gốc gốc 2602 ngày 7 tháng 6 09:35 id_rsa
-rw-r--r-- 1 gốc gốc 566 ngày 7 tháng 6 09:35 id_rsa.pub
-rw-r--r-- 1 root root 222 ngày 7 tháng 6 09:35 known_hosts
Tạo một điểm gắn kết cho vị trí từ xa, đảm bảo rằng tất cả người dùng có thể sử dụng nó và thêm một liên kết có tên Xa
trong thư mục chính của mỗi người dùng.
mkdir /mnt/từ xa
chmod a+rw /mnt/từ xa
ln -s /mnt/remote /etc/skel/Remote
Tạo tập lệnh để gắn vị trí từ xa.
nano /opt/mount_remote.sh
Thêm phần sau vào tập lệnh. Nhớ thay n00dles@REMOTE
và REMOTE_LOCATION_PATH
khi cần thiết.
#!/bin/bash
# Gắn vị trí từ xa.
# Để gắn kết, hãy sử dụng: sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote
# Để ngắt kết nối, hãy sử dụng: fusermount -u /mnt/remote
cho i trong {1..5}; làm
nếu điểm gắn kết/mnt/từ xa; sau đó
echo "[email protected]:/REMOTE_LOCATION_PATH đã được gắn."
nghỉ
khác
# Cố gắn vị trí từ xa vào /mnt/remote
echo "Thử # $i để gắn kết [email protected]:/REMOTE_LOCATION_PATH."
ngủ đi
sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote
fi
xong
nếu điểm gắn kết/mnt/từ xa; sau đó
echo "Đã gắn thành công [email protected]:/REMOTE_LOCATION_PATH."
khác
echo "Không thể gắn [email protected]:/REMOTE_LOCATION_PATH."
fi
Loại ĐIỀU KHIỂNX, Y, đi vào để lưu tập tin.
Bạn có thể sử dụng các biến môi trường như $HOME
trong kịch bản, nếu bạn cần.
Làm cho tập lệnh có thể thực thi được.
chmod +x /opt/mount_remote.sh
Tạo một tệp tự khởi động sẽ chạy cho mỗi người dùng sau khi đăng nhập.
nano ~/mount_remote.desktop
Đối với XUbuntu 20.04+ hoặc các phiên bản Ubuntu cũ hơn, hãy thêm phần sau vào tệp.
[Mục nhập máy tính để bàn]
Mã hóa=UTF-8
Phiên bản=0.9.4
Loại=Ứng dụng
Tên=mount_remote
Comment=Gắn vị trí từ xa
Exec=/opt/mount_remote.sh
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Thiết bị đầu cuối = sai
Ẩn = sai
Đối với Ubuntu 20.04+, hãy thêm phần sau vào tệp.
[Mục nhập máy tính để bàn]
Loại=Ứng dụng
Exec=/opt/mount_remote.sh
Ẩn = sai
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Gắn điều khiển từ xa
Tên = Gắn điều khiển từ xa
Comment[en_US]=Gắn vị trí từ xa
Comment=Gắn vị trí từ xa
Loại ĐIỀU KHIỂNX, Y, đi vào để lưu tập tin.
Bạn có thể thêm Thiết bị đầu cuối = đúng
đến *.máy tính để bàn
cho mục đích gỡ lỗi, nhưng vị trí từ xa sẽ bị ngắt kết nối ngay lập tức sau khi cửa sổ đầu cuối tự động đóng.
Di chuyển tệp tự khởi động đến đúng vị trí. Bạn có hai lựa chọn.
Nếu bạn muốn sử dụng tệp tự động khởi động chung, hãy chuyển tệp đó sang /etc/xdg/tự khởi động
.
mv ~/mount_remote.desktop /etc/xdg/autostart
Nếu bạn muốn mỗi người dùng có bản sao riêng của tệp tự khởi động, hãy di chuyển tệp đó đến /etc/skel/.config/autostart
. (Người dùng sẽ có thể xóa tệp này vì nó sẽ được đặt trong thư mục chính của họ).
mkdir -p /etc/skel/.config/autostart
mv ~/mount_remote.desktop /etc/skel/.config/autostart
Tiếp tục tùy chỉnh hệ điều hành của bạn và tạo ISO mới.
thử nghiệm
Nếu bạn sử dụng tên máy chủ từ xa thay vì địa chỉ IP, khi bạn kiểm tra ISO được tạo, hãy đảm bảo rằng độ phân giải DNS hoạt động. Trong VirtualBox, tôi thường đặt Mạng sử dụng "Bộ điều hợp cầu" thay vì bộ điều hợp "NAT" mặc định.