Как настроить NoMachine в Ubuntu с аутентификацией на основе ключа?

Как настроить NoMachine на Ubuntu?

Почему Номашина?

В Windows мне нравится использовать Chrome Remote Desktop для удаленного входа в систему, и он отлично работает. Но в Linux у меня просто проблема за проблемой с удаленным рабочим столом Chrome, и это очень глючит:

  1. Это мешает мне монтировать и использовать подключенные USB-диски или накопители: автоматическое монтирование при нажатии на диски в файловом менеджере с графическим интерфейсом внезапно перестало работать в Ubuntu. («Невозможно смонтировать... Нет прав на выполнение операции».)
  2. Это мешает мне изменить настройки моего принтера: настройки gnome Ubuntu 18.04: как исправить «Системная политика запрещает изменения. Обратитесь к системному администратору» для второго пользователя, который уже является администратором
  3. Я получаю примерно одно использование за переустановку удаленного рабочего стола Chrome: не удается подключиться к удаленному рабочему столу Chrome в Ubuntu 18 .
  4. и т.п.

Итак, я слышал хорошие отзывы о NoMachine и хочу попробовать. Но я хочу использовать аутентификацию на основе ключей и отключить аутентификацию на основе пароля для повышения безопасности. Итак, как мне настроить NoMachine для этого?

2 ответа

Первоначально я разместил эти инструкции в своем репозитории eRCaGuy_dotfiles здесь: https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/tree/master/NoMachine .

Если вам когда-нибудь понадобится подключиться по ssh, я задокументировал свои различные заметки по ssh здесь .

Информация о NoMachine

NoMachine — отличная программа удаленного входа в систему с отличными возможностями обмена файлами/монтирования и отличной кросс-платформенной поддержкой для Windows, Mac, Linux, iOS, Android, Raspberry Pi и ARM. Это не открытый исходный код, но его использование бесплатно (только для личного использования - предприятия должны платить).

https://www.nomachine.com/

Настраивать

Скачать:

https://www.nomachine.com/download

Чтобы включить аутентификацию на основе ключей на сервере:

Ссылки:
ПРОЧИТАЙТЕ ЭТО!

  1. Как настроить аутентификацию на основе ключа с протоколом NX
  2. Генерация нового SSH-ключа

По сути, просто добавьте свой открытый ключ в файл на сервере. Если файл не существует, создайте его. Установите его разрешения на 0600. Вот один из примеров команд для этого:

1) Запустить с клиента :

Сгенерировать новую пару закрытый/открытый ключ от клиента ; запустите это с клиента:

      ssh-keygen -t rsa -b 4096 -C "your personal comment or email"

Скопируйте открытый (.pub) ключ только с клиента на сервер; запустите это с клиента; обратите внимание на переименование файла в месте назначения, чтобы избежать конфликта с ключами, уже сгенерированными на сервере:

      scp ~/.ssh/id_rsa.pub username@server_hostname_or_ip:~/.ssh/id_rsa_nxclient.pub

2) Запустить с сервера :

Теперь добавьте открытый ключ на сервер в соответствующий файл NoMachine; запустите это с сервера:

      cat ~/.ssh/id_rsa_nxclient.pub >> ~/.nx/config/authorized.crt

И, наконец, установите разрешения для этого файла на 0600, чтобы разрешить чтение/запись этого файла ТОЛЬКО для пользователя (владельца) этого файла в целях безопасности:

      chmod 0600 ~/.nx/config/authorized.crt

Чтобы отключить вход на сервер по паролю:

NB: НЕ делайте этого до тех пор, пока аутентификация на основе ключей не будет настроена и проверена на работоспособность, иначе вы потеряете возможность удаленного подключения через NoMachine и вам придется вручную исправлять это удаленно через ssh или локально!

Ссылки:
(не совсем отвечая на этот вопрос, но косвенно помогая в его выяснении)

  1. Предотвращение аутентификации по паролю с помощью протокола NX и аутентификации на основе ключа
  2. Объяснение файлов server.cfg и node.cfg (для сервера версии 4 и выше)

Примечание. В Linux server.cfg находится здесь: «/usr/NX/etc/server.cfg».

На сервере редактируем server.cfg( ) и найдите этот раздел:

      #
# Specify how clients will have to authenticate to the server, by
# default all the available methods are supported. This corresponds
# to value all. To specify a subset of methods use a comma-separated
# list.
#
# Supported methods for connections by NX protocol are:
# NX-password   : Password authentication.
# NX-private-key: Key-based authentication.
# NX-kerberos   : Kerberos ticket-based authentication.
#
# Supported method for connections by SSH protocol is:
# SSH-system    : All methods supported for the system login.
#                 SSH authentication methods for the system login
#                 have to be set on the system for example in the
#                 PAM configuration.
#
# For example:
# AcceptedAuthenticationMethods NX-private-key,SSH-system
#
# This key has to be used in conjunction with ClientConnectionMethod.
# See also the EnableNXClientAuthentication key for enabling SSL
# client authentication for connections by NX protocol.
#
#AcceptedAuthenticationMethods all

Теперь чуть ниже этой закомментированной строки, указывающей настройку по умолчанию:

      #AcceptedAuthenticationMethods all

Добавьте эту строку, чтобы изменить настройку, чтобы разрешить ТОЛЬКО аутентификацию на основе ключа:

      AcceptedAuthenticationMethods NX-private-key

Затем перезапустите сервер NoMachine (https://www.nomachine.com/TR11N07362):

      sudo /usr/NX/bin/nxserver --restart

Теперь попробуйте подключиться удаленно с помощью NoMachine с аутентификацией на основе пароля, и вы должны увидеть следующую ошибку в программе с графическим интерфейсом:

      Ooops! The session negotation failed. Error: Authentication method NX-password is not allowed on this server

Если вы увидели указанную выше ошибку, вы успешно отключили вход в систему с аутентификацией по паролю! Теперь проверьте свою аутентификацию на основе ключа, чтобы убедиться, что она все еще работает.

Для подключения из-за пределов вашей сети

Чтобы подключиться к NoMachine из-за пределов вашего дома, вы должны либо использовать VPN в своей локальной сети, либо открыть переадресацию портов через брандмауэр в своем модеме.

Чтобы выполнить переадресацию портов, подключитесь к модему через его IP-адрес в браузере и через настройки сопоставьте какой-нибудь внешний порт, например , на IP-адрес и порт вашего внутреннего компьютера с NoMachine. Эти детали для других вопросов и ответов когда-нибудь ...

Порт по умолчанию для вашего сервера NoMachine: , Полагаю. Щелкните значок NoMachine в правом верхнем углу в Ubuntu, перейдите в «Показать статус службы» -> щелкните вкладку «Настройки сервера» справа -> см. «Порт» для вашего сервера NoMachine.

Сделанный.

В базе знаний NoMachine это описано в разделе « Как настроить аутентификацию на основе ключей с помощью протокола NX», о котором Габриэль Стейплс упоминает в своем ответе:

Но есть ОШИБКА, которая требует дополнительного шага для снятия флажка «Импортировать закрытый ключ в файл подключения» на клиенте, чтобы он работал:

Другие вопросы по тегам