2017-01-25 3 views
-1

Это, кажется, популярный вопрос на StackOverflow, но ничего, кажется, работает для меняВедение Sudo су с SSH на удаленный сервер не работает

Я объясню мои проблемы, а затем пойти на решения, я попытался

Что мне нужно сделать, это ssh до serverB от serverA. для этого я настроить шифрование RSA на серверах и я могу успешно SSH к ServerB

Я использую

ssh [email protected] 

Теперь я хочу выполнять определенные команды на serverB. Первым из них является переход на пользователя app. Для этого мне нужно запустить команду sudo su - app, но я также хочу указать пароль в той же строке, чтобы он снова не запрашивал пароль.

Так что я пытался первым непосредственно запустить sudo su - app команду serverB с паролем, чтобы проверить его

Я попытался следующей

echo "password" | sudo su - app 

sudo -S <<< "password" su - app 

echo "password" | sudo -S su - app 

echo 'passowrd' | sudo 'su -c - app' 

Однако ни один из вышеупомянутых решений работает для меня.

Ближайший я мог бы получить был с

echo "password" | script -c "sudo su - app" 

, где он принимает пароль и показывает мне

[email protected] [/app] 
$ 

Однако, когда я запускаю команду whoami он все еще показывает мне user вместо app. Однако, когда я непосредственно запустить sudo su - app и обеспечить проход, а затем запустить whoami это дает мне app

Я пытаюсь выполнить команду с SSH, как

ssh [email protected] -t 'echo "password" | script -c "sudo su - app"' 

P.S. пользователь user оленья кожа имеет root доступ, а также я не могу использовать любой плагин, как у меня нет разрешения делать то же самое

Мой сервер является Redhat 6.2

Я надеюсь, что я мог бы объяснить это правильно. Ищете некоторые ответы, которые могут помочь.

Извините за мой плохой английский. Спасибо за помощь.

+0

поэтому пользователь не находится в группе '' 'sudousers'''? –

+0

@ МартинБее нет, это не –

+0

, если у вас нет привилегий root, по моему мнению, вы не сможете запускать какую-либо команду, начинающуюся с '' 'sudo''', если можете, попробуйте войти в систему как' '' app''' в начале с помощью команды ssh. –

ответ

0

Если мы установили ssh с использованием шифрования ключа rsa, нам не нужно использовать пароль.

Для того, чтобы включить SSH с открытым/секретным ключом я следую

  1. Genrate public/private ke у для пользователя на serverA

    ssh-keygen -t rsa 
    
  2. Перейти к .ssh/id_rsa.pub файлу и скопировать открытый ключ

  3. Войдите в систему ServerB, а затем выполните sudo su - app, чтобы перейти на пользователя приложения. Здесь в файле .ssh/authorized_key скопируйте открытый ключ.

  4. Try ssh к serverB теперь от serverA как

    ssh [email protected] 
    

Он работает без запроса пароля.