Мне было интересно, если кто-то может помочь мне с моим сценарием.
У меня есть 2 сервера. Давайте назовем их сервером A и сервером B. На сервере B установлено программное обеспечение, которое я хотел бы запустить с сервера A. Я не могу установить программное обеспечение на сервере A.
Я должен позволить пользователям запускать другое программное обеспечение на сервере A, которое затем вызывает скрипт для вызова программного обеспечения на сервере B для запуска команды.
Таким образом, я создал пользователя с именем Transfer на сервере A и сервере B. Я позволил Transfer иметь возможность ssh на сервер B без ввода пароля с использованием ключей аутентификации.
Итак, теперь с сервера A я пытаюсь выполнить su в качестве передачи, ssh на сервер B и выполнить команду.
Это прекрасно работает как root. Однако, когда я сам или любой другой пользователь, он запрашивает у меня пароль для «переносящего» пользователя на сервере B.
Вот последовательность команд:
#!/bin/bash
su transfer -c 'ssh transfer@ServerB script $1 $2'
su
от nonroot требуется пароль нового пользователя где это работает , что А, потому что Unix был спроектирован как многопользовательская система. Пытатьсяsu transfer -c 'echo hi'
чтобы увидеть это. Ты можешь использоватьsudo
чтобы позволить выбранным пользователям запускать этот конкретныйssh
на А, или вы можете просто дать выбранным пользователям на А приватный ключ, который позволяет им использоватьssh
чтобы получить доступ В какtransfer
безtransfer
пользователь на совсем.