Ключ SSH с пользователем и корень со сценарием оболочки

Действительно ли это возможно к ssh, входят в сервер как пользователь с доступом оболочки и затем изменяют на пользователя root обоих с помощью ssh ключа с помощью сценария удара?

0
задан 7 January 2016 в 07:51

2 ответа

В конце Вашего ssh файла конфигурации (/etc/ssh/shd_config, вероятно), запишите:

Match User SomeUserName
        ForceCommand echo "*** Now Becoming Root ***" && sudo -i

Вы ввели бы пароли вручную, если Вы используете пароли... во всяком случае, перезапускаете ssh, чтобы перезагрузить конфигурационный файл.

sudo service ssh restart
0
ответ дан 29 September 2019 в 17:02

Существует два способа, которыми Вы могли сделать это:

Один ключ: ssh непосредственно от localhost до root@remote

  1. Генерируйте новую пару ключей, если Вы уже не имеете.

    ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
    
  2. Скопируйте открытый ключ в корневую учетную запись удаленной машины:

    ssh user@remote sudo -i bash -c "mkdir -p .ssh && cat >> .ssh/authorized_keys" < ~/.ssh/id_rsa.pub
    
    (You will need to enter one or two passwords.)
    
  3. Тест, чтобы видеть, работало ли это:

    ssh root@remote.host
    

Два ключа: ssh на user@remote с помощью локального ключа, затем ssh на root@remote с помощью ключа пользователя на удаленном

  1. Войдите в систему удаленной машины как пользователь

    ssh user@remote.host
    
  2. Создайте пару ключей на удаленной машине (следуйте за шагом 1 выше),

  3. Скопируйте ключ в учетную запись корня:

    sudo -i bash -c "mkdir -p .ssh && cat >> .ssh/authorized_keys" < ~/.ssh/id_rsa.pub
    
  4. Как пользователь на удаленном, протестируйте его:

    ssh root@localhost
    
    (No password required)
    
  5. Выйдите из системы и делайте попытку обоих транзитных участков от своей домашней машины:

    ssh user@remote.host ssh root@localhost
    
  6. Если это работает, теперь можно заблокировать корневые попытки входа в систему от внешнего дюйм/с.

Проблемы

Если тесты перестали работать:

  1. Вы, возможно, должны проверить /etc/ssh/sshd_config на удаленном хосте для обеспечения у Вас есть строка без # комментарий:

    PubkeyAuthentication yes
    

    и также:

    PermitRootLogin without-password
    

    или:

    PermitRootLogin yes
    

    Если действительно необходимо изменить какие-либо строки, перезапустите ssh сервер впоследствии:

    sudo -i service ssh restart
    
  2. Вы, возможно, должны установить пароль для корня на удаленной машине (даже если Вы не намереваетесь использовать его!):

    sudo -i passwd
    

    Это не действительно желательно, но могло быть полезно для отладки.

    Для отключения пароля root снова работайте:

    sudo passwd -l root
    
1
ответ дан 29 September 2019 в 17:02

Другие вопросы по тегам:

Похожие вопросы: