В OMV ssh включён по-умолчанию, на ноуте юзера сервис ssh скорее всего есть, но может быть неактивным. Есть смысл перепроверить по Проверить статус сервиса SSH. Здесь и далее подразумеваем, что
- сервис ssh работает безупречно,
- на ноуте личный ssh-ключ уже сгенерирован и импортирован в систему (см. Сделать личный ssh-ключ)
- NAS отзывается по IP 192.168.1.20
- на стороне NAS находится действующий юзер «login»
- мы залогинены в OMV через веб-интерфейс
Импортировать в OMV публичный ssh-ключ
Это стандартный способ закинуть свой ssh-ключ на удалённый сервер:
ssh-copy-id login@192.168.50.20
но в случае с OMV лучше добавлять личные ssh-ключи каждому пользователю по-отдельности. Поэтому:
- На ноуте вывести в консоль содержимое файла с публичным ключом (настройки по-умолчанию):
cat ∼/.ssh/id_rsa.pub
- Скопировать в буфер обмена содержимое файла *.pub, от первой строки до последней, в которой указан емайл юзера.
- В веб-интерфейсе OMV перейти в
User Management
> Users
> выбрать нужного юзера
> Edit
> Public keys > [+ Add]
- Вставить содержимое буфера обмена (там наш публичный ключ) в предлагаемое поле. OMV просигнализирует, если текст будет неподходящим.
- [Save / Apply / Yes]
Подключение к NAS по ssh
ssh login@192.168.50.20
Можно обратиться к ресурсу и по имени, если оно уже прописано в /etc/hosts, например:
ssh login@tower.local
Подключение с указанием ключа
Разумно, если ключей овердофига, и совершенно не нужно, если ключ один.
Подключение с указанием определенного ключа
Надо через '-i' указать его файл. Примеры:
В любом случе ждём дежурное сообщение о подключении к неизвестному источнику:
ECDSA key fingerprint is SHA256:kMUXGtfu5aCMPjQkdz6H/5oi3XOn6uJwA84bqy1+ViM.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Ответить «yes». Это стандартная и условная, но всё-таки защита от вероятных ошибок при указании адреса подключения.
В консоли будет указан логи и ресурс, к которому произошло подключение:
В файле ‘~/.ssh/known_hosts‘ появится запись о новом подключении. Если удалить этот файл или весь каталог '.ssh', то процесс «знакомства» повторится при последующем подключении.
В будущем вероятна ситуация, когда надо будет зайти по ssh на NAS с другого ноутбука под тем же юзером 'login' (для которого в OMV был прописан публичный ключ). Это подключение будет запрещено, если на новом ноуте не будет предварительно импортирован старый ssh-ключ. Решений несколько:
- или импортировать на новый ноутбук старый ssh-ключ
- или в OMV удалить запись про публичный ключ для существующего юзера 'login'
- или в OMV удалить существующего юзера 'login' и создать нового (с новым ssh-ключом)
- или в OMV создать нового юзера с другим именем, и не создавать для него ssh-подключение
- или в OMV создать нового юзера с другим именем, и создать для него новый ssh-ключ
Убрать дежурное сообщение при логине
После каждого подключения в консоль выводится что-то вроде
Linux tower 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Nov 25 06:19:27 2024 from 192.168.50.11
Это можно убрать.
1)
sudo mcedit /etc/pam.d/sshd
Найти строки
# Print the message of the day upon successful login.
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
Закомментировать последние две.
2)
То же самое найти и закомментировать в файле
sudo mcedit /etc/pam.d/login
Также в файле login закомментировать строку
# Prints the last login info upon successful login
# (Replaces the `LASTLOG_ENAB' option from login.defs)
session optional pam_lastlog.so
3)
В файле
sudo mcedit /etc/ssh/sshd_config
найти строку
PrintLastLog yes
и поменять её на
PrintLastLog no
4)
Перезапустить SSH демон
sudo systemctl restart sshd
Алиас в .bashrc
Теперь можно всё это упростить, прописав короткий алиас для команды подключения — см. Приложения:Сделать алиас в .bashrc
В дальнейшем вся аутентификация на данном ресурсе будет происходить по данному ключу. Подразумевается, что это повысит уровень безопасности подключений. Пока этот ключ не украдут со всем папкой ’∼/.ssh’, конечно.
Next step: Передача файлов по ssh