2

У меня есть требование, когда я хочу, чтобы пользователь моей программы на C++ мог делать ssh без пароля на определенной машине, но тот же пользователь не должен иметь возможность делать ssh на той же машине через обычный терминал / оболочку.

3 ответа3

1

В системе Unix вы должны установить для исполняемого файла setuid, чтобы она могла запускать ssh -i для файла идентификации, иначе недоступного для пользователя, запускающего программу. Этот идентификационный файл будет аутентифицировать доступ к удаленной машине.

0

Вы можете жестко закодировать закрытый ключ SSH в исходный код программы (или использовать средство для очистки цепочки ключей, более простое в обслуживании), а затем добавить соответствующий открытый ключ в файл авторизованные удаленные хосты.

0

Используйте аутентификацию с закрытым ключом и отключите другие методы аутентификации на сервере.

Кроме того, вы можете использовать директиву ForceCommand в sshd_config сервера, чтобы разрешить выполнение только данной команды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .