Я пишу программу Java, которая может программно использовать SSH на любой удаленной машине и выполнять команды. Я повторно используя существующую библиотеку Java, чтобы сделать так: https://github.com/shikhar/sshjДоступ к Sudo при использовании SSHJ
Проблема Я бегу в это выяснить, как Судо ПЕРЕКЛЮЧИТЬ как таковой:
«Sudo су - [имя пользователя] здесь».
Если вы запустите это вручную в терминале, вам будет предложено ввести пароль. Насколько я понимаю, если вы находитесь под файлом sudoers и правильно вводите свой пароль, вы сможете запустить команду для переключения пользователя как такового. Я не хочу, чтобы пользователь вводил пароль. В идеале, программа не должна требовать какого-либо вмешательства человека для запуска.
То, что я хотел бы получить, это: программно отправить пароль через сокет, чтобы пользователь не вводил его в стандартную версию. Если пользователь может войти на удаленную машину с использованием своих учетных данных, программа должна быть в состоянии получить эти же учетные данные и передать их, когда sudo запрашивает пароль у пользователя.
После Googling какое-то время я не могу понять, как добиться этого с помощью этой библиотеки. Говорю, что я на самом деле не специалист по деталям SSH более низкого уровня. У кого-нибудь есть идея по этому поводу?
Спасибо, ребята.
Вы могли получить sudo для работы с sshj без использования библиотеки overthere? Это может быть решением для вас, хотя оно не работает для меня с vanilla ubuntu 16.04 с использованием openssh-сервера. https://stackoverflow.com/questions/20406425/executing-sudo-command-on-my-amazon-ec2-box-using-sshj-java-library – simgineer