Разрешение, отклоненное при запущении скрипта через ssh

Пройдите через MSTSC-соединение к xrdp

  • и изнутри перезапустите службу SSH-демона. Если проблема продолжится, я посмотрю в файле журнала
  • /var/log/secure

  • , чтобы убедиться, что проблема связана с аутентификацией. Вы можете обратиться к лог-файлу
  • /var/log/messages

  • , чтобы подтвердить, что служба SSH также работает нормально.
  • EDIT #1
  • Основываясь на комментарии OP, "...Failed password for root from 192.168.4.190 port 50677..." похоже, что это может быть пароль пользователя root, а не то, что вы думаете. Снова используя ваш MSTSC доступ через xrdp

  • я бы подтвердил, что вы можете
  • su - и войти в систему как root.

    Если вы можете, то проблема, скорее всего, заключается либо в том, что в вашем файле /etc/ssh/sshd_config не разрешен ни root доступ пользователей, ни в том, что IP-адрес, с которого вы пытаетесь соединиться, может быть не разрешен. Тем не менее, я бы ожидал, что в лог-файлах /var/log/* сообщения будут отличаться, но это две дополнительные зацепки для продолжения

    .

    2
    28.11.2016, 01:24
    5 ответов

    Я думаю, что это потому, что у вас нет PasswordAuthentication, который установлен на "да".

    PasswordAuthentication yes
    

    Добавьте это в sshd_config на машинах и повторите попытку. При этом должен появиться запрос на ввод пароля.

    Другим решением будет взять содержимое ~/.ssh/id_rsa.pub на HostA и добавить его в файл ~/.ssh/authorized_keys на HostB

    Теперь, когда у вас включена аутентификация паролем, вы можете установить авторизованные ключи с помощью этой команды:

    ssh-copy-id HostB
    
    0
    27.01.2020, 23:10

    Похоже, он все еще хочет, чтобы ты ввел пароль. Когда вы передаете SSH на HostB из HostA, он запрашивает пароль?

    Если да, то вам нужно будет изменить ваш файл ssh_config (/etc/ssh/sshd_config на RHEL/Centos), чтобы иметь:

    PasswordAuthentication no
    

    Если PasswordAuthentication установлено значение "да", то он всегда будет запрашивать пароль.

    -2
    27.01.2020, 23:10

    Попробуйте так:

    ssh root@hostb 'bash -s' < local-script.sh
    
    -3
    27.01.2020, 23:10

    Вы упоминаете, что используете scp внутри вашего скрипта для загрузки пакетов. Ваша проблема заключается в этом. Проблема в том, что, когда вы запускаете ssh в таком виде:

    ssh user@host command
    

    ... для запущенного скрипта не выделяется псевдотерминал. scp пытается запросить пароль, но для этого ему нужен псевдотерминал, поэтому без него вы получаете ошибку permission denied (которая возникает из-за неудачной попытки аутентификации пароля). Если вы используете ssh -t, то псевдотерминал есть, и запрос пароля работает. Вам нужно выяснить, почему scp запрашивает пароль при удаленном запуске, но не при запуске из интерактивной сессии ssh. Это уже другой вопрос.

    0
    27.01.2020, 23:10

    Permission denied (publickey,password) error

    Это не имеет ничего общего с разрешениями на скрипт. Вы не можете установить ssh-соединение. Попробуйте сначала получить оболочку на удаленной системе.

    ssh -vv root@HostB
    

    Кстати, обычно не рекомендуется разрешать прямой доступ к учетной записи root через ssh -, и ошибка, которую вы показали, является ожидаемой, если sshd настроен с PermitRootLogin=No. Правильный способ решить эту проблему — предоставить учетной записи соответствующие привилегии sudo и использовать ее для запуска команды.

    0
    27.01.2020, 23:10

    Теги

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