Как мне войти в систему как обычный пользователь без пароля?

Как мне войти в систему как обычный пользователь без пароля?

Мне было интересно, сможет ли кто-нибудь помочь мне с моим сценарием.

У меня есть 2 сервера. Назовем их Сервер А и Сервер Б. На Сервере Б установлено программное обеспечение, которое я хотел бы запустить с Сервера А. Я не могу установить программное обеспечение на Сервер А.

Мне нужно разрешить пользователям запускать другое программное обеспечение на сервере A, которое затем вызовет скрипт для вызова программного обеспечения на сервере B для выполнения команды.

Поэтому я создал пользователя с именем transfer на сервере A и сервере B. Я разрешил transfer подключаться по SSH к серверу B без ввода пароля, используя ключи аутентификации.

Итак, теперь с сервера A я пытаюсь выполнить команду su as transfer, подключиться по ssh к серверу B и выполнить команду.

Это прекрасно работает как root. Однако, когда я являюсь собой или любым другим пользователем, он запрашивает у меня пароль для пользователя "transfer" на сервере B.

Вот последовательность команд:

 #!/bin/bash
 su transfer -c 'ssh transfer@ServerB script $1 $2' 

решение1

Создайте скрипт оболочки, который выполняет удаленную команду:

% cat > /home/transfer/exec-remote-sw <<EOF
#!/bin/bash
ssh transfer@ServerB script $1 $2
EOF
% chmod 755 /home/transfer/exec-remote-sw

Протестируйте этот скрипт, запустив его от имени transferпользователя:

% /home/transfer/exec-remote-sw  arg1  arg2

Теперь как пользователь root создайте группу Linux (например transfer, ), а затем добавьте всех пользователей, которым нужен доступ к этой функции, в группу Unix:

% groupadd transfer
% usermod -a -G transfer login1
% usermod -a -G transfer login2
...
% usermod -a -G transfer loginN

Как пользователь root добавьте в файл следующее, /etc/sudoersвыполнив visudo:

%transfer   serverA = (transfer) NOPASSWD: /home/transfer/exec-remote-sw

Для проверки войдите в систему как один из пользователей в группе переноса и запустите:

% sudo -u transfer /home/transfer/exec-remote-sw  arg1  arg2

Чтобы упростить этот процесс для пользователей, попросите их добавить следующее в свои файлы .profile (или добавьте это в /etc/profile для всех):

alias svrbexec="sudo -u transfer /home/transfer/exec-remote-sw"

Затем пользователи могут ввести:

% svrbexec  arg1  arg2

и удаленный процесс должен выполняться с двумя переданными параметрами.

Связанный контент