Вы должны настроить аутентификацию на основе ключа для удаленного компьютера, поэтому взаимодействие с пользователем не требуется.
В приведенных ниже инструкциях замените следующие значения по мере необходимости.
Создайте открытый и закрытый ключи для вашего локального компьютера.
Эти ключи будут использоваться в вашем пользовательском ISO. Помните о последствиях для безопасности. Любой, кто завладеет вашим настроенным USB-накопителем, сможет войти на ваш удаленный компьютер.
Выполните следующие команды на вашем локальном компьютере (например, не в Cubic).
компакт-диск ~
ssh-keygen -t rsa
Примите значения по умолчанию. Вывод будет выглядеть примерно так.
Генерация пары открытый/закрытый ключ rsa.
Введите файл для сохранения ключа (/home/n00dles/.ssh/id_rsa):
Введите кодовую фразу (пусто, если нет парольной фразы):
Введите тот же пароль еще раз:
Ваша идентификация сохранена в /home/n00dles/.ssh/id_rsa.
Ваш открытый ключ сохранен в /home/n00dles/.ssh/id_rsa.pub
Ключевой отпечаток пальца:
SHA256:G48dcTOXpUhzWxuzwn8pgdOTP9WmlLtXBCJkkiSEywk n00dles@LOCAL
Случайное изображение ключа:
+---[RSA 3072]----+
| хххххххххх|
| х х ххххххххх|
| х х ххххххх |
| х хххххх |
| х х х хххх |
| х х ххх |
| х х х х х |
| х |
| х |
+----[SHA256]-----+
Настроить удаленный вход.
Скопируйте открытый ключ на удаленную машину. Помните о последствиях для безопасности. Это позволит удаленно подключаться с любого компьютера с использованием соответствующего закрытого ключа.
ssh-copy-id -i .ssh/id_rsa.pub пользователь@хост
Создать новый известные_хосты
файл, который вы скопируете в настроенный ISO. Это позволит среде Live подключиться к удаленному компьютеру, не запрашивая подтверждения у пользователя.
Временно сделайте резервную копию текущего известные_хосты
файл. Не забудьте заменить n00dles@REMOTE
и REMOTE_LOCATION_PATH
как надо.
mv ~/.ssh/known_hosts ~/.ssh/known_hosts.original
# Войдите на удаленную машину, чтобы автоматически создать новый файл `known_hosts`.
sudo mkdir /mnt/удаленный
sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote/
Отпечаток ключа ECDSA — SHA256:XXXX.
Вы уверены, что хотите продолжить подключение (да/нет/[отпечаток пальца])? да
# Размонтировать удаленную машину.
fusermount -u /mnt/удаленный
sudo rmdir /mnt/remote
# Сохраните новый файл known_hosts.
мв ~/.ssh/known_hosts ~/
# Восстановить исходный файл known_hosts.
mv ~/.ssh/known_hosts.original ~/.ssh/known_hosts
Настройте ISO с помощью Cubic.
Запустите Cubic и выполните следующие действия на странице терминала.
Убедиться sshfs
установлен, поэтому мы можем подключаться к удаленным машинам.
метко установить sshfs
Скопируйте ключи и новый известные_хосты
файл в пользовательскую ОС.
компакт-диск /etc/skel
мкдир .ssh
chmod u=rwx,g=,o= .ssh
компакт-диск .ssh
Откройте файловый браузер, например Nautilus, и перейдите к ~/.ssh
каталог.
Выбирать id_rsa
и id_rsa.pub
и перетащите их в окно Cubic, чтобы скопировать их в текущий каталог, /etc/skel.ssh
.
Откройте файловый браузер, например Nautilus, и перейдите в свой домашний каталог.
Выберите новый известные_хосты
файл и перетащите его в окно 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=r известные_хосты
лс -ла
-rw------- 1 root root 2602 7 июня 09:35 id_rsa
-rw-r--r-- 1 root root 566 7 июня 09:35 id_rsa.pub
-rw-r--r-- 1 root root 222 7 июня 09:35 known_hosts
Создайте точку подключения для удаленного расположения, убедитесь, что ее могут использовать все пользователи, и добавьте ссылку с именем Удаленный
в домашнем каталоге каждого пользователя.
mkdir / mnt / удаленный
chmod a+rw /mnt/удаленный
ln -s /mnt/remote /etc/skel/Remote
Создайте сценарий для подключения удаленного расположения.
нано /opt/mount_remote.sh
Добавьте в скрипт следующее. Не забудьте заменить n00dles@REMOTE
и REMOTE_LOCATION_PATH
как надо.
#!/бин/баш
# Монтирует удаленное местоположение.
# Для монтирования используйте: sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote
# Для размонтирования используйте: fusermount -u /mnt/remote
для я в {1..5}; делать
если точка монтирования /mnt/remote; тогда
echo "[email protected]:/REMOTE_LOCATION_PATH смонтировано."
сломать
еще
# Попытка смонтировать удаленное местоположение в /mnt/remote
echo "Попытка # $i смонтировать [email protected]:/REMOTE_LOCATION_PATH."
спать $ я
sshfs [email protected]:/REMOTE_LOCATION_PATH/ /mnt/remote
фи
сделано
если точка монтирования /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
Тип = Приложение
Имя = mount_remote
Комментарий=Смонтировать удаленное местоположение
Exec=/opt/mount_remote.sh
ТолькоШоуИн=XFCE;
Ранхук=0
StartupNotify=ложь
Терминал=ложь
Скрытый = ложь
Для Ubuntu 20.04+ добавьте в файл следующее.
[Вход на рабочий стол]
Тип = Приложение
Exec=/opt/mount_remote.sh
Скрытый = ложь
NoDisplay=ложь
X-GNOME-Autostart-enabled=true
Name[en_US]=Mount Remote
Name=Mount Remote
Comment[en_US]=Смонтировать удаленное местоположение
Комментарий=Смонтировать удаленное местоположение
Тип CTRLИкс, Д, Войти чтобы сохранить файл.
Можете добавить Терминал=истина
к *.рабочий стол
файл для целей отладки, но удаленное расположение будет немедленно размонтировано, как только окно терминала автоматически закроется.
Переместите файл автозапуска в нужное место. У вас есть два варианта.
Если вы хотите использовать глобальный файл автозапуска, переместите его в /etc/xdg/автозапуск
.
mv ~/mount_remote.desktop /etc/xdg/автозапуск
Если вы хотите, чтобы у каждого пользователя была собственная копия файла автозапуска, переместите его в /etc/skel/.config/автозапуск
. (Пользователи смогут удалить этот файл, поскольку он будет помещен в их домашнюю папку).
mkdir -p /etc/skel/.config/autostart
mv ~/mount_remote.desktop /etc/skel/.config/autostart
Продолжайте настраивать ОС и создавайте новый ISO-образ.
Тестирование
Если вы используете имя удаленного хоста вместо IP-адреса, при тестировании сгенерированного ISO убедитесь, что разрешение DNS работает. В VirtualBox я обычно настраиваю сеть на использование «адаптера моста» вместо адаптера «NAT» по умолчанию.