Создайте нового пользователя SSH на сервере Ubuntu

для разработки plone на linux, мы используем этот скрипт сборки: https://svn.plone.org/svn/collective/buildout/bda-naked-python/

имеются файлы конфигурации сборки для python версии 2.4, 2.5, 2.6, 2.7 и 3.2.

README рассказывает, как его использовать.

84
задан 8 December 2010 в 20:11

63 ответа

Изменить (как root) /etc/ssh/sshd_config. Добавьте к нему следующее:

Port 1234
PermitRootLogin no
AllowUsers jim

Port 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024 ), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim для входа через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

AllowUsers jim@1.2.3.4

Изменения в файле конфигурации /etc/ssh/sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

sudo service ssh reload
79
ответ дан 26 May 2018 в 00:03
  • 1
    +1: Примечание: эти инструкции по-прежнему применимы к более поздним версиям Ubuntu (например, 13.04). Однако, если вы хотите войти в root, (возможно, вы все еще настраиваете сервер), вы должны установить PermitRootLogin на yes, а также добавить root в AllowUsers. – JRG-Developer 15 October 2013 в 23:57
  • 2
    какой пароль для этого пользователя? – Wolfpack'08 29 January 2016 в 07:45
  • 3
    Мой VPS поставляется с паролем root для входа SSH на порт 22. Добавление ответа на sshd_config приводит к тому, что root не может войти в систему. Это потому, что я также использовал порт 22 для jim, или есть ли другая причина? – Wolfpack'08 30 January 2016 в 04:44
  • 4
    @Lekensteyn Я нашел просто добавление нового пользователя к самому Ubuntu, который создает учетную запись ssh для этого пользователя .... useradd -m -G sudo,adm -s /bin/bash mecharok и passwd mecharok – Wolfpack'08 30 January 2016 в 22:00
  • 5
    @ Wolfpack'08 Используйте AllowUsers username1,username2 для ограничения доступа к SSH для этих пользователей. Убедитесь, что sshd перезагружен. Если это не поможет, создайте новый вопрос. – Lekensteyn 30 January 2016 в 22:16

Изменить (как root) /etc/ssh/sshd_config. Добавьте к нему следующее:

Port 1234 PermitRootLogin no AllowUsers jim

Port 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024 ), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim для входа через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

AllowUsers jim@1.2.3.4

Изменения в файле конфигурации /etc/ssh/sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

sudo service ssh reload
83
ответ дан 25 July 2018 в 22:46

Изменить (как root) /etc/ssh/sshd_config. Добавьте к нему следующее:

Port 1234 PermitRootLogin no AllowUsers jim

Port 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024 ), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim для входа через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

AllowUsers jim@1.2.3.4

Изменения в файле конфигурации /etc/ssh/sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

sudo service ssh reload
83
ответ дан 31 July 2018 в 11:29

Изменить (как root) /etc/ssh/sshd_config. Добавьте к нему следующее:

Port 1234 PermitRootLogin no AllowUsers jim

Port 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024 ), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim для входа через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

AllowUsers jim@1.2.3.4

Изменения в файле конфигурации /etc/ssh/sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

sudo service ssh reload
83
ответ дан 2 August 2018 в 04:11

Изменить (как root) / etc / ssh / sshd_config . Добавьте к нему следующее:

  Порт 1234 PermitRootLogin no AllowUsers jim  

Порт 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim войти в систему через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

  AllowUsers jim@1.2.  3.4  

Изменения в файле конфигурации / etc / ssh / sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

  sudo service ssh reload  
83
ответ дан 4 August 2018 в 20:15

Изменить (как root) / etc / ssh / sshd_config . Добавьте к нему следующее:

  Порт 1234 PermitRootLogin no AllowUsers jim  

Порт 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim войти в систему через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

  AllowUsers jim@1.2.  3.4  

Изменения в файле конфигурации / etc / ssh / sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

  sudo service ssh reload  
83
ответ дан 6 August 2018 в 04:16

Изменить (как root) / etc / ssh / sshd_config . Добавьте к нему следующее:

  Порт 1234 PermitRootLogin no AllowUsers jim  

Порт 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim войти в систему через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

  AllowUsers jim@1.2.  3.4  

Изменения в файле конфигурации / etc / ssh / sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

  sudo service ssh reload  
83
ответ дан 7 August 2018 в 22:20

Изменить (как root) / etc / ssh / sshd_config . Добавьте к нему следующее:

  Порт 1234 PermitRootLogin no AllowUsers jim  

Порт 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim войти в систему через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

  AllowUsers jim@1.2.  3.4  

Изменения в файле конфигурации / etc / ssh / sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

  sudo service ssh reload  
83
ответ дан 10 August 2018 в 10:30

Изменить (как root) / etc / ssh / sshd_config . Добавьте к нему следующее:

  Порт 1234 PermitRootLogin no AllowUsers jim  

Порт 1234 заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбирать привилегированный порт (порт 1-1024), который может использоваться только root. Если ваш демон SSH перестает работать по какой-либо причине, приложение-изгои не может перехватить соединение.

PermitRootLogin запрещает вход в систему с прямым корнем.

AllowUsers jim позволяет пользователю jim войти в систему через SSH. Если вам не нужно входить в систему со всего мира, вы можете сделать это более безопасным, ограничив jim на IP-адрес (замените 1.2.3.4 на ваш фактический IP-адрес):

  AllowUsers jim@1.2.  3.4  

Изменения в файле конфигурации / etc / ssh / sshd_config не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:

  sudo service ssh reload  
83
ответ дан 13 August 2018 в 16:56
  • 1
    +1: Примечание: эти инструкции по-прежнему применимы к более поздним версиям Ubuntu (например, 13.04). Однако, если вы хотите root войти (возможно, вы все еще настраиваете сервер), вы должны установить PermitRootLogin на да , а также добавьте root в AllowUsers . – JRG-Developer 15 October 2013 в 23:57
  • 2
    какой пароль для этого пользователя? – Wolfpack'08 29 January 2016 в 07:45
  • 3
    Мой VPS поставляется с паролем root для входа SSH на порт 22. Добавление ответа на sshd_config приводит к тому, что root не может войти в систему. Это потому, что я также использовал порт 22 для jim, или есть ли другая причина? – Wolfpack'08 30 January 2016 в 04:44
  • 4
    @Lekensteyn Я нашел просто добавление нового пользователя к самому Ubuntu, создающему учетную запись ssh для этого пользователя .... useradd -m -G sudo, adm -s / bin / bash mecharok и passwd mecharok – Wolfpack'08 30 January 2016 в 22:00
  • 5
    @ Wolfpack'08 Используйте AllowUsers имя_пользователя1, имя_пользователя2 , чтобы ограничить доступ к SSH для этих пользователей. Убедитесь, что sshd перезагружен. Если это не поможет, создайте новый вопрос. – Lekensteyn 30 January 2016 в 22:16

SSH очень разборчиво относится к разрешениям каталога и файла. Убедитесь, что:

У директории /home/username/.ssh есть разрешение «700» и принадлежит пользователю (не root!). У / home / username / ssh / authorized_keys есть разрешение «600», и будет принадлежать пользователю

Скопируйте свой открытый ключ в файл authorized_keys.

sudo chown -R username:username /home/username/.ssh
sudo chmod 0700 /home/username/.ssh
sudo chmod 0600 /home/username/.ssh/authorized_keys

Нет необходимости добавлять пользователя в / etc / ssh / ssh_config.

53
ответ дан 26 May 2018 в 00:03
  • 1
    Моя проблема была chown, я создал ~./ssh как root и никогда не дал пользователю права собственности. – Gerve 9 April 2014 в 23:05
  • 2
    Моя проблема заключалась в том, что я пытался использовать /root/.ssh/authorized_keys вместо /home/bob/.ssh/authorized_keys. – Alex W 28 April 2015 в 18:57
  • 3
    Я могу подтвердить: на нашем хосте VPS не нужно было редактировать ssh_config. Настройка этого каталога и файла была достаточно. – superjos 6 May 2015 в 12:46
  • 4
    Это правильный ответ и масштабируемость! – Viet 1 November 2016 в 11:20
  • 5
    Для меня это должен был быть chmod 755 /home/username/.ssh, иначе это не сработало. – Jim W 3 December 2016 в 02:58

В /var/log/auth.log будут обнаружены подсказки, почему SSH (или PAM) отклоняет попытку входа в систему. Дополнительные подсказки можно найти, используя опцию -v с клиентом ssh. Несколько распространенных ситуаций, некоторые из которых упомянуты в других ответах:

у учетной записи пользователя отсутствует пароль или иначе отключен (см. [F3], попробуйте сбросить пароль или проверить содержимое /etc/shadow). /etc/ssh/sshd_config настроен на запрет входа в систему (DenyUsers, AllowUsers, PasswordAuthentication, PubkeyAuthentication, UsePAM и т. д., см. man sshd_config). оболочка пользователя не указана в /etc/shells. различные проблемы с разрешениями в каталогах или файлах, связанных с работой SSH: /etc/ssh, /home/jim/.ssh, /home/jim/.ssh/* и т. д.

Я также рекомендую использовать ssh (вместо useradd) для добавления новых пользователей;

До тех пор, пока пользователь не входит в группу admin, они не смогут useradd установить root , Чтобы использовать su, вам необходимо установить пароль root (passwd root), после чего я рекомендую установить PermitRootLogin=no в /etc/ssh/sshd_config.

10
ответ дан 26 May 2018 в 00:03
  • 1
    Большое спасибо за отличный ответ, особенно «adduser». помогли! – vishal.biyani 21 August 2013 в 16:47

Я мог ошибаться, но мне всегда нужно установить демон сервера, прежде чем я смогу подключиться (по крайней мере, на рабочем столе). ssh устанавливается по умолчанию, но это только клиент

эта команда устанавливает сервер [ ! d1]

sudo apt-get install openssh-server

Вы можете изменить порт и остановить регистрацию root путем редактирования

/etc/ssh/sshd_config

Для этого вам необходимо перезапустить сервис.

sudo service ssh restart

10
ответ дан 26 May 2018 в 00:03
  • 1
    Это виртуальный сервер (VPS), поэтому SSH устанавливается по умолчанию. Это мой единственный интерфейс для сервера. И вы можете перезагрузить конфигурацию через sudo /etc/init.d/ssh reload, но, тем не менее, получить хорошую информацию. – Oli♦ 8 December 2010 в 20:54

У Jim не будет доступа к SSH, пока вы не установите пароль. Как root выполнить:

grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'

Если эта команда возвращает символ "!" а затем логин отключен для этой учетной записи. Выполнение passwd jim с правами root приведет к появлению новой и подтвержденной строки пароля, после которой команда grep выше должна вернуть хешированную строку, представляющую пароль для jim.

Также убедитесь, что у jim есть логин shell, установленный по умолчанию, и домашний каталог, который существует.

Обратите внимание на сообщение lekensteyn для получения информации об изменении настроек сервера SSH.

6
ответ дан 26 May 2018 в 00:03
  • 1
    " Если эта команда возвращает " " символ, а затем логин отключен для этой учетной записи " Обратите внимание, это не означает, что вы не можете SSH; только то, что вы не можете сделать это с помощью пароля (по сравнению с вашим открытым ключом). – bfontaine 4 April 2017 в 17:13

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

Используя пример выше с пользователем jim и предположим член группы jim, поскольку это только группа (команда groups, когда вы вошли в систему как jim, чтобы найти группы, частью которых вы являетесь). В моем /etc/ssh/sshd_config файле у меня была запись AllowGroups sshusers и, следовательно, мне нужно было добавить jim в группу sshusers. Ниже описано, как это будет выполнено:

usermod -a -G sshusers jim

Замените вашу группу и пользователя в соответствии с вашей конфигурацией.

1
ответ дан 26 May 2018 в 00:03
  • 1
    вы должны улучшить свой ответ, указав источник, который лучше объяснит ваш пример, или добавив соответствующую информацию, основанную на вашем примере, на исходный вопрос OP. например, пользователь указал jim в качестве фиктивного пользователя, чтобы помочь обеспечить контекст. статья здесь объясняет это хорошо. – jargonjunkie 13 February 2018 в 04:29

Возможно, некоторые экземпляры PasswordAuthentication отключены по умолчанию.

Просьба проверить /etc/ssh/sshd_config и убедиться, что для атрибута PasswordAuthentication установлено значение yes.

0
ответ дан 26 May 2018 в 00:03

Возможно, некоторые экземпляры PasswordAuthentication отключены по умолчанию.

Просьба проверить /etc/ssh/sshd_config и убедиться, что для атрибута PasswordAuthentication установлено значение yes.

0
ответ дан 25 July 2018 в 22:46

Я мог ошибаться, но мне всегда нужно установить демон сервера, прежде чем я смогу подключиться (по крайней мере, на рабочем столе). ssh устанавливается по умолчанию, но это только клиент

эта команда устанавливает сервер [ ! d1]

sudo apt-get install openssh-server

Вы можете изменить порт и остановить регистрацию root путем редактирования

/etc/ssh/sshd_config

Для этого вам необходимо перезапустить сервис.

sudo service ssh restart

10
ответ дан 25 July 2018 в 22:46
  • 1
    Это виртуальный сервер (VPS), поэтому SSH устанавливается по умолчанию. Это мой единственный интерфейс для сервера. И вы можете перезагрузить конфигурацию через sudo /etc/init.d/ssh reload, но, тем не менее, получить хорошую информацию. – Oli♦ 8 December 2010 в 20:54

В /var/log/auth.log будут обнаружены подсказки, почему SSH (или PAM) отклоняет попытку входа в систему. Дополнительные подсказки можно найти, используя опцию -v с клиентом ssh. Несколько распространенных ситуаций, некоторые из которых упомянуты в других ответах:

у учетной записи пользователя отсутствует пароль или иначе отключен (см. [F3], попробуйте сбросить пароль или проверить содержимое /etc/shadow). /etc/ssh/sshd_config настроен на запрет входа в систему (DenyUsers, AllowUsers, PasswordAuthentication, PubkeyAuthentication, UsePAM и т. д., см. man sshd_config). оболочка пользователя не указана в /etc/shells. различные проблемы с разрешениями в каталогах или файлах, связанных с работой SSH: /etc/ssh, /home/jim/.ssh, /home/jim/.ssh/* и т. д.

Я также рекомендую использовать ssh (вместо useradd) для добавления новых пользователей;

До тех пор, пока пользователь не входит в группу admin, они не смогут useradd установить root , Чтобы использовать su, вам необходимо установить пароль root (passwd root), после чего я рекомендую установить PermitRootLogin=no в /etc/ssh/sshd_config.

10
ответ дан 25 July 2018 в 22:46
  • 1
    Большое спасибо за отличный ответ, особенно «adduser». помогли! – vishal.biyani 21 August 2013 в 16:47

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

Используя пример выше с пользователем jim и предположим член группы jim, поскольку это только группа (команда groups, когда вы вошли в систему как jim, чтобы найти группы, частью которых вы являетесь). В моем /etc/ssh/sshd_config файле у меня была запись AllowGroups sshusers и, следовательно, мне нужно было добавить jim в группу sshusers. Ниже описано, как это будет выполнено:

usermod -a -G sshusers jim

Замените вашу группу и пользователя в соответствии с вашей конфигурацией.

1
ответ дан 25 July 2018 в 22:46
  • 1
    вы должны улучшить свой ответ, указав источник, который лучше объяснит ваш пример, или добавив соответствующую информацию, основанную на вашем примере, на исходный вопрос OP. например, пользователь указал jim в качестве фиктивного пользователя, чтобы помочь обеспечить контекст. статья здесь объясняет это хорошо. – jargonjunkie 13 February 2018 в 04:29

У Jim не будет доступа к SSH, пока вы не установите пароль. Как root выполнить:

grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'

Если эта команда возвращает символ "!" а затем логин отключен для этой учетной записи. Выполнение passwd jim с правами root приведет к появлению новой и подтвержденной строки пароля, после которой команда grep выше должна вернуть хешированную строку, представляющую пароль для jim.

Также убедитесь, что у jim есть логин shell, установленный по умолчанию, и домашний каталог, который существует.

Обратите внимание на сообщение lekensteyn для получения информации об изменении настроек сервера SSH.

6
ответ дан 25 July 2018 в 22:46
  • 1
    & quot; Если эта команда возвращает & quot; & quot; символ, а затем логин отключен для этой учетной записи & quot; Обратите внимание, это не означает, что вы не можете SSH; только то, что вы не можете сделать это с помощью пароля (по сравнению с вашим открытым ключом). – bfontaine 4 April 2017 в 17:13

SSH очень разборчиво относится к разрешениям каталога и файла. Убедитесь, что:

У директории /home/username/.ssh есть разрешение «700» и принадлежит пользователю (не root!). У / home / username / ssh / authorized_keys есть разрешение «600», и будет принадлежать пользователю

Скопируйте свой открытый ключ в файл authorized_keys.

sudo chown -R username:username /home/username/.ssh sudo chmod 0700 /home/username/.ssh sudo chmod 0600 /home/username/.ssh/authorized_keys

Нет необходимости добавлять пользователя в / etc / ssh / ssh_config.

59
ответ дан 25 July 2018 в 22:46
  • 1
    Моя проблема была chown, я создал ~./ssh как root и никогда не дал пользователю права собственности. – Gerve 9 April 2014 в 23:05
  • 2
    Моя проблема заключалась в том, что я пытался использовать /root/.ssh/authorized_keys вместо /home/bob/.ssh/authorized_keys. – Alex W 28 April 2015 в 18:57
  • 3
    Я могу подтвердить: на нашем хосте VPS не нужно было редактировать ssh_config. Настройка этого каталога и файла была достаточно. – superjos 6 May 2015 в 12:46
  • 4
    Это правильный ответ и масштабируемость! – Viet 1 November 2016 в 11:20
  • 5
    Для меня это должен был быть chmod 755 /home/username/.ssh, иначе это не сработало. – Jim W 3 December 2016 в 02:58

Возможно, некоторые экземпляры PasswordAuthentication отключены по умолчанию.

Просьба проверить /etc/ssh/sshd_config и убедиться, что для атрибута PasswordAuthentication установлено значение yes.

0
ответ дан 31 July 2018 в 11:29

Я мог ошибаться, но мне всегда нужно установить демон сервера, прежде чем я смогу подключиться (по крайней мере, на рабочем столе). ssh устанавливается по умолчанию, но это только клиент

эта команда устанавливает сервер [ ! d1]

sudo apt-get install openssh-server

Вы можете изменить порт и остановить регистрацию root путем редактирования

/etc/ssh/sshd_config

Для этого вам необходимо перезапустить сервис.

sudo service ssh restart

10
ответ дан 31 July 2018 в 11:29
  • 1
    Это виртуальный сервер (VPS), поэтому SSH устанавливается по умолчанию. Это мой единственный интерфейс для сервера. И вы можете перезагрузить конфигурацию через sudo /etc/init.d/ssh reload, но, тем не менее, получить хорошую информацию. – Oli♦ 8 December 2010 в 20:54

В /var/log/auth.log будут обнаружены подсказки, почему SSH (или PAM) отклоняет попытку входа в систему. Дополнительные подсказки можно найти, используя опцию -v с клиентом ssh. Несколько распространенных ситуаций, некоторые из которых упомянуты в других ответах:

у учетной записи пользователя отсутствует пароль или иначе отключен (см. [F3], попробуйте сбросить пароль или проверить содержимое /etc/shadow). /etc/ssh/sshd_config настроен на запрет входа в систему (DenyUsers, AllowUsers, PasswordAuthentication, PubkeyAuthentication, UsePAM и т. д., см. man sshd_config). оболочка пользователя не указана в /etc/shells. различные проблемы с разрешениями в каталогах или файлах, связанных с работой SSH: /etc/ssh, /home/jim/.ssh, /home/jim/.ssh/* и т. д.

Я также рекомендую использовать ssh (вместо useradd) для добавления новых пользователей;

До тех пор, пока пользователь не входит в группу admin, они не смогут useradd установить root , Чтобы использовать su, вам необходимо установить пароль root (passwd root), после чего я рекомендую установить PermitRootLogin=no в /etc/ssh/sshd_config.

10
ответ дан 31 July 2018 в 11:29
  • 1
    Большое спасибо за отличный ответ, особенно «adduser». помогли! – vishal.biyani 21 August 2013 в 16:47

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

Используя пример выше с пользователем jim и предположим член группы jim, поскольку это только группа (команда groups, когда вы вошли в систему как jim, чтобы найти группы, частью которых вы являетесь). В моем /etc/ssh/sshd_config файле у меня была запись AllowGroups sshusers и, следовательно, мне нужно было добавить jim в группу sshusers. Ниже описано, как это будет выполнено:

usermod -a -G sshusers jim

Замените вашу группу и пользователя в соответствии с вашей конфигурацией.

1
ответ дан 31 July 2018 в 11:29
  • 1
    вы должны улучшить свой ответ, указав источник, который лучше объяснит ваш пример, или добавив соответствующую информацию, основанную на вашем примере, на исходный вопрос OP. например, пользователь указал jim в качестве фиктивного пользователя, чтобы помочь обеспечить контекст. статья здесь объясняет это хорошо. – jargonjunkie 13 February 2018 в 04:29

У Jim не будет доступа к SSH, пока вы не установите пароль. Как root выполнить:

grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'

Если эта команда возвращает символ "!" а затем логин отключен для этой учетной записи. Выполнение passwd jim с правами root приведет к появлению новой и подтвержденной строки пароля, после которой команда grep выше должна вернуть хешированную строку, представляющую пароль для jim.

Также убедитесь, что у jim есть логин shell, установленный по умолчанию, и домашний каталог, который существует.

Обратите внимание на сообщение lekensteyn для получения информации об изменении настроек сервера SSH.

6
ответ дан 31 July 2018 в 11:29
  • 1
    & quot; Если эта команда возвращает & quot; & quot; символ, а затем логин отключен для этой учетной записи & quot; Обратите внимание, это не означает, что вы не можете SSH; только то, что вы не можете сделать это с помощью пароля (по сравнению с вашим открытым ключом). – bfontaine 4 April 2017 в 17:13

SSH очень разборчиво относится к разрешениям каталога и файла. Убедитесь, что:

У директории /home/username/.ssh есть разрешение «700» и принадлежит пользователю (не root!). У / home / username / ssh / authorized_keys есть разрешение «600», и будет принадлежать пользователю

Скопируйте свой открытый ключ в файл authorized_keys.

sudo chown -R username:username /home/username/.ssh sudo chmod 0700 /home/username/.ssh sudo chmod 0600 /home/username/.ssh/authorized_keys

Нет необходимости добавлять пользователя в / etc / ssh / ssh_config.

59
ответ дан 31 July 2018 в 11:29
  • 1
    Моя проблема была chown, я создал ~./ssh как root и никогда не дал пользователю права собственности. – Gerve 9 April 2014 в 23:05
  • 2
    Моя проблема заключалась в том, что я пытался использовать /root/.ssh/authorized_keys вместо /home/bob/.ssh/authorized_keys. – Alex W 28 April 2015 в 18:57
  • 3
    Я могу подтвердить: на нашем хосте VPS не нужно было редактировать ssh_config. Настройка этого каталога и файла была достаточно. – superjos 6 May 2015 в 12:46
  • 4
    Это правильный ответ и масштабируемость! – Viet 1 November 2016 в 11:20
  • 5
    Для меня это должен был быть chmod 755 /home/username/.ssh, иначе это не сработало. – Jim W 3 December 2016 в 02:58

Возможно, некоторые экземпляры PasswordAuthentication отключены по умолчанию.

Просьба проверить /etc/ssh/sshd_config и убедиться, что для атрибута PasswordAuthentication установлено значение yes.

0
ответ дан 2 August 2018 в 04:11

Я мог ошибаться, но мне всегда нужно установить демон сервера, прежде чем я смогу подключиться (по крайней мере, на рабочем столе). ssh устанавливается по умолчанию, но это только клиент

эта команда устанавливает сервер [ ! d1]

sudo apt-get install openssh-server

Вы можете изменить порт и остановить регистрацию root путем редактирования

/etc/ssh/sshd_config

Для этого вам необходимо перезапустить сервис.

sudo service ssh restart

10
ответ дан 2 August 2018 в 04:11
  • 1
    Это виртуальный сервер (VPS), поэтому SSH устанавливается по умолчанию. Это мой единственный интерфейс для сервера. И вы можете перезагрузить конфигурацию через sudo /etc/init.d/ssh reload, но, тем не менее, получить хорошую информацию. – Oli♦ 8 December 2010 в 20:54

В /var/log/auth.log будут обнаружены подсказки, почему SSH (или PAM) отклоняет попытку входа в систему. Дополнительные подсказки можно найти, используя опцию -v с клиентом ssh. Несколько распространенных ситуаций, некоторые из которых упомянуты в других ответах:

у учетной записи пользователя отсутствует пароль или иначе отключен (см. [F3], попробуйте сбросить пароль или проверить содержимое /etc/shadow). /etc/ssh/sshd_config настроен на запрет входа в систему (DenyUsers, AllowUsers, PasswordAuthentication, PubkeyAuthentication, UsePAM и т. д., см. man sshd_config). оболочка пользователя не указана в /etc/shells. различные проблемы с разрешениями в каталогах или файлах, связанных с работой SSH: /etc/ssh, /home/jim/.ssh, /home/jim/.ssh/* и т. д.

Я также рекомендую использовать ssh (вместо useradd) для добавления новых пользователей;

До тех пор, пока пользователь не входит в группу admin, они не смогут useradd установить root , Чтобы использовать su, вам необходимо установить пароль root (passwd root), после чего я рекомендую установить PermitRootLogin=no в /etc/ssh/sshd_config.

10
ответ дан 2 August 2018 в 04:11
  • 1
    Большое спасибо за отличный ответ, особенно «adduser». помогли! – vishal.biyani 21 August 2013 в 16:47

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

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