$ sudo nano /etc/ssh/sshd_config
And putting these lines in, or uncommenting as required, and saving / write-out:
# Authentication:
PermitRootLogin yes
Then I needed to access the root account, so I issue:
$ sudo su
# cd /root
# mkdir .ssh
# cd .ssh
# nano authorized_keys
Then put the relevant public key in here, I pasted mine in from near the top of Putty-Gen, and save / write-out.
Then restart the sshd daemon, still as root, with:
# systemctl restart sshd
# exit
# exit
Then after I’d added the relevant .ppk file in my SSH Auth within Putty, it worked like a charm!
asked Aug 15, 2014 at 16:31
The default setting in Debian (and hence Ubuntu) for OpenSSH Server is to deny password-based login for root and allow only key-based login. Change this line in /etc/ssh/sshd_config:
And restart the SSH server:
sudo service ssh restart
answered Aug 15, 2014 at 16:34
53 gold badges469 silver badges719 bronze badges
To me, works changing (Ubuntu 18.04):
then, restart ssh service:
answered Nov 27, 2018 at 20:45
And, as Vaindil pointed out, a key based login would be far superior. They are not very hard to setup. Here’s a link to setup key-based login using PuTTY on windows: https://devops.profitbricks.com/tutorials/use-ssh-keys-with-putty-on-windows/ . But there are lots of others if you are using a different environment to login from.
answered Apr 24, 2018 at 15:48
Linux System — Aug 14, 2022 Written by Ahmer Tahir
- Introduction
- Prerequisites
- Conclusion
- Step 1
- Step 2
- Step 3
- Step 4
- If you like what you are reading, please
- Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH
- Разрешение входа root по SSH в Ubuntu 20. 04, пошаговые инструкции
- Restart SSH service
- Login with root
- Reset root password(Optional)
- Разрешить SSH Доступ пользователю или группе
- Запретить SSH Доступ пользователю или группе
- Как проверить конфигурационный файл сервера SSH без запуска службы
- Как выбрать интерфейс (IP) для прослушивания
- Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH
- Как изменить порт, на котором работает сервер OpenSSH
- Другие важные опции командной строки сервера SSH
- Как настроить SSH сервер (sshd)
- Другие опции sshd
- Запуск сервера SSH с другим конфигурационным файлом
- Как разрешить или запретить пользователям входить через SSH
- Оглавление
- Перезапуск службы SSH
- Запуск SSH без отсоединения от терминала
- Шаблоны в файле настроек SSH
- Related Blogs
- How To Auto Login tty1 In Debian 11 Server
- How To Enable SSH Root Login In Debian 11
- How To Setup Multiple Static IPS On Ubuntu 22
- Разрешение входа без пароля
Introduction
We use SSH to log into the system like VPS for installing or setting it up. SSH login is a lightweight and fastest way to configure your system then using GUI with RDP or something. GUI is sometimes too slow to work with. But SSH is thousand times faster than any other access point. You can simply access it from your terminal or command line.
Prerequisites
Now you have to scroll down and uncomment the line by removing from its start and replacing with at the end, as shown in the image below:
If you want to disable it again, simply edit the file again and set to or comment it by placing at the start.
$ sudo vim /etc/ssh/sshd_config
Save and close the file.
If you want to allow an entire group for SSH Access, and you can edit the configuration file /etc/ssh/sshd_config using vim text editor:
$ sudo systemctl restart sshd.service
save and close the file and restart sshd service.
Conclusion
While editing /etc/ssh/sshd_config I saw a directive «PermitRootLogin» which is commented out by default.
I would like to set «PermitRootLogin no» but to still be able to ssh to the machine as root only from the local network.
Is that possible?
asked Jul 17, 2016 at 12:07
28 gold badges93 silver badges145 bronze badges
Use the Match config parameter in /etc/ssh/sshd_config:
See man sshd_config
answered Jul 17, 2016 at 12:47
13 gold badges179 silver badges226 bronze badges
answered Jul 17, 2016 at 17:51
6 gold badges38 silver badges55 bronze badges
In /etc/ssh/sshd_config, disable root logins:
In this example, I also allowed traffic from IPv6 link-local addresses. This is helpful if you use mDNS that may resolve to an IPv6 address or if you need to access the server even when routing is broken. Note that the eth0 part of the address will change based on the interface name on your server. Use ifconfig or ip link to list valid network devices for your server.
answered Apr 30, 2021 at 21:35
In this article you will learn How to Allow SSH Root Login on Ubuntu 20.04 LTS Linux step by step.
But root SSH login can be enabled by editing OpenSSH daemon (sshd) configuration.
WARNING! Using SSH root login is a bad idea!
Step 1
$ vim /etc/ssh/sshd_config
Step 2
Find commented PermitRootLogin parameter or manually add
As shown on image:
Step 3
After finish editing configuration file save and close it.
For the changes to take effect, you must restart sshd daemon.
Step 4
Now we need set password for the root with using passwd command:
$ sudo passwd root
$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
Now you will be able SSH login as root to your Ubuntu server
Enable SSH Root Login on Ubuntu
To enable Root Login on Ubuntu edit sshd daemon configuration PermitRootLogin parameter to:
1. PermitRootLogin yes2. Save changes3. Restart sshd daemon4. Set password for the root with using passwd command
Discuss article in ArsTech Forum
Read also: How To Setup SSH: Public Key Authentication On Linux
If you like what you are reading, please
Buy me a coffee
I have centos5.
OR is there any way that only root can use keys to login into shell but for others its normal password
asked Oct 10, 2010 at 23:44
A better way now is to use the Match keyword:
Match Host myworkstation
PermitRootLogin yes
Match Address 192.168.1.100
PermitRootLogin yes
That way, you can leave PermitRootLogin set to ‘no’, but you can still log in as root from your workstation.
This can also be used, for example, to allow root to rsync data between two hosts.
answered Jul 31, 2015 at 5:33
3 silver badges5 bronze badges
You could always put the IP restriction on your key in ~root/.ssh/authorized_keys:
answered Oct 11, 2010 at 7:31
6 gold badges43 silver badges67 bronze badges
answered Oct 16, 2010 at 1:09
1 silver badge3 bronze badges
Then restart the daemon
answered Oct 11, 2010 at 0:34
9 gold badges34 silver badges55 bronze badges
Second, don’t allow root login via ssh. Just don’t do it — there’s no good reason for needing to do so. It goes against every best practice out there, and for good reason. If you need to grant permissions to read/write certain files, you should be able to do so through the standard linux filesystem permissions. If you need more fine-grained access control, look into the linux ACL system.
answered Oct 11, 2010 at 0:21
18 gold badges174 silver badges244 bronze badges
Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH
Permission denied, please try again.
Permission denied (publickey,password).
То проверьте значение директивы PermitRootLogin:
По умолчанию она закомментирована, но указанное значение всё равно используется по умолчанию.
Директива PermitRootLogin определяет, может ли root выполнить вход используя ssh. Аргументами могут быть: yes, prohibit-password, forced-commands-only или no. Значением по умолчанию является prohibit-password.
Если эта опция установлена на prohibit-password (или устаревший псевдоним without-password), то вход по паролю и интерактивная аутентификация с клавиатуры отключены для пользователя root.
Если эта опция установлена на forced-commands-only, вход root с аутентификацией по публичному ключу будет разрешён, но только если была указана опция ForceCommand с командой (это может быть полезно для получения удалённых бэкапов, даже если нормальный вход root не разрешён). Все другие методы аутентификации отключены для root.
Если эта опция установлена на no, то root’у не разрешён вход вовсе.
Если опция установлена на yes, то разрешён вход для рута без ограничений.
Итак, если вы столкнулись с проблемой, что не можете выполнить вход с верным паролем под пользователем root, то либо настройте вход без пароля — по публичному ключу, либо установите значение этой директивы на yes.
SSH (Secure Shell) используется для безопасной обработки сетевых сервисов в незащищенной сети.
Некоторые примеры включают в себя: удаленную командную строку, вход в систему и удаленное выполнение команд.
В этой статье вы узнаете, как включить SSH-доступ для пользователя root на сервере/настольном Ubuntu 20.04.
Разрешение входа root по SSH в Ubuntu 20. 04, пошаговые инструкции
Откройте файл /etc/ssh/sshd_config с правами администратора и измените следующую строку:
FROM:
#PermitRootLogin prohibit-password
TO:
PermitRootLogin yes
Быстрый способ выполнить эту работу – просто использовать команду sed, как показано ниже:
$ sudo sed -i ‘s/#PermitRootLogin prohibit-password/PermitRootLogin yes/’ /etc/ssh/sshd_config
Перезапустите службу SSH:
По умолчанию пароль root не установлен в Ubuntu 20.04, и появится сообщение об ошибке:
По этой причине нам необходимо установить пароль root.
При появлении запроса введите текущий пароль пользователя, а затем новый пароль root:
Учитывая, что ваша система Ubuntu 20.04 разрешает входящий трафик на порту 22 по ssh, теперь вы должны быть готовы к SSH-входу в систему от пользователя root:
Best Steps to Install Perl on Rocky Linux 8
a) You should have a running Ubuntu 20.04 LTS System.
b) You should have sudo or root access to run privileged commands.
c) You should have OpenSSH Server installed in your System.
For that you need to open /etc/ssh/sshd_config file using our favorite nano editor and then set the parameter value to yes. Then Press Ctrl+X and give Y to save and close the file.
Restart SSH service
After setting the parameter, you need to restart ssh service by using systemctl restart ssh command as shown below.
Then check the service status by using systemctl status ssh command. It should show as active and running as you can see below.
Login with root
Reset root password(Optional)
В этом руководстве мы рассмотрим, как разрешить или запретить доступ SSH к определенному пользователю или группе в Linux
Файл конфигурации OpenSSH по умолчанию имеет две директивы для разрешения и запрета доступа SSH к определенному пользователю (пользователям) или группе.
Во-первых, мы увидим, как разрешить SSH-доступ для определенного пользователя, например sk.
Обратите внимание, что все команды должны выполняться как пользователь root.
Разрешить SSH Доступ пользователю или группе
Перейдите на ваш удаленный сервер и отредактируйте файл sshd_config:
$ sudo vi /etc/ssh/sshd_config
Добавьте или отредактируйте следующую строку:
Замените «sk» на свое имя пользователя.
Вы также можете указать несколько пользователей, как показано ниже.
Чтобы разрешить целую группу, скажем, например, root, добавьте / отредактируйте следующую строку:
Те, кто входит в группу, могут передавать ssh на удаленный сервер.
Сохраните и закройте конфигурационный файл SSH.
Перезапустите службу SSH, чтобы изменения вступили в силу.
Теперь пользователям sk, itsecfor или всем пользователям под группой «root» разрешено ssh на ваш удаленный сервер. Другие пользователи (кроме sk, itsecforu и пользователи «root») не могут.
Если вы попытаетесь передать ssh на удаленный сервер с помощью любого из недопустимых пользователей, вы получите следующее сообщение об ошибке:
Теперь давайте рассмотрим, как запретить / отключить доступ ssh определенному пользователю или группе.
Запретить SSH Доступ пользователю или группе
Чтобы отключить или запретить доступ SSH к любому пользователю или группе, вам необходимо добавить / изменить следующие директивы в файле sshd_config вашего удаленного сервера.
Чтобы запретить доступ SSH к определенному пользователю с именем «sk», отредактируйте файл sshd_config:
Добавьте / отредактируйте следующую строку в файле sshd_config.
Аналогично, чтобы запретить доступ SSH нескольким пользователям, укажите имена пользователей как показано ниже.
Чтобы запретить доступ SSH ко всей группе, например root, добавьте:
Сохраните и закройте файл конфигурации ssh.
Перезапустите службу ssh, чтобы внести изменения.
если вы пытаетесь использовать ssh для сервера с использованием запрещенных пользователей, например sk:
Появится следующее сообщение:
Что еще более важно, вы также должны отключить вход пользователя root.
Доступ root по ssh считается плохой практикой с точки зрения безопасности.
Чтобы отключить root ssh login, отредактируйте файл sshd_config:
$ sudo vi / etc / ssh / sshd_config
Найдите следующую строку, Раскомментируйте ее и установите значение равным no.
Перезапустите службу SSH. Вы только что отключили вход ssh root.
Как проверить конфигурационный файл сервера SSH без запуска службы
Тестовый режим. Только проверяет правильность файла конфигурации и работоспособность ключей. Это полезно для надёжного обновления sshd, поскольку параметры конфигурации могут измениться.
Расширенный тестовый режим. С этой опцией sshd проверит правильность файла конфигурации, выведет действующую конфигурацию в стандартный вывод и затем завершит работу. При желании, правила соответствия могут применяться путём указания параметров соединения с использованием одной или нескольких опций -C.
Как выбрать интерфейс (IP) для прослушивания
В системе может быть несколько сетевых интерфейсов с несколькими IP адресами, по умолчанию sshd прослушивает их все, в том числе IPv6 адреса:
ListenAddress 0.0.0.0
ListenAddress ::
Если вы хотите, чтобы компьютер в локальной сети был доступен только для устройств в локальной сети, то можно указать его локальный IP:
Кстати, смотрите статью «Как настроить Kali Linux на использование статичного IP адреса».
Директиву ListenAddress можно использовать несколько раз в одном конфигурационном файле. Разрешены следующие форматы:
Если порт не указан, то sshd будет прослушивать на указанном порту в соответствии со всеми установленными опциями Port в этом файле.
Квалификатор rdomain является необязательным, он имеет отношение к маршрутизации.
Также обратите внимание, что с ListenAddress обязательно должен быть указано имя хоста (адрес) ИЛИ порт. Можно указать отдельно имя хоста (адрес), можно указать отдельно порт, а также можно указать их вместе. Во всех вариантах rdomain может отсутствовать.
Опции командной строки (об их использовании далее) имеют приоритет над директивами конфигурационного файла. В том числе опция для установки используемого порта приводят к тому, что Port в конфигурационном файле игнорируется. Но порты указанные с ListenAddress перезаписывают порты в строке команды.
Вы можете указать конкретный IP, который будет прослушиваться в ожидании подключений. А опцией AddressFamily вы можете выбрать для прослушивания все адреса, только IPv4 или только IPv6:
Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH
Возможно ограничить ключ ssh или ключ на основе ca набором адресов в файле .ssh/authorized_keys домашнего каталога данного пользователя:
Как изменить порт, на котором работает сервер OpenSSH
Все настройки выполняются в файле /etc/ssh/sshd_config или в строке команды запуска sshd.
Для sshd.socket смена прослушиваемого службой порта происходит иначе.
Если вы используете sshd.service (объяснения в первой части), то смена порта также происходит в файле /etc/ssh/sshd_config. Для этого раскомментируйте директиву Port и укажите новое значение:
Опцию Port разрешено использовать несколько раз.
Также порт можно установить с помощью ListenAddress.
Если вы используете сокет sshd.socket и хотите поменять для SSH прослушиваемый порт, то вам нужно редактировать специальный файл следующим образом:
sudo systemctl edit sshd.socket
Там можно указать только порт:
А также IP и порт:
Обратите внимание, что использование ListenStream дважды в одном конфигурационном файле не является ошибкой. Если вы используете ListenStream только один раз с указанием порта, тогда будут прослушиваться и 22 порт и порт, который вы указали. Первое использование ListenStream= отключает прослушивание 22 порта.
Для sshd.socket другие настройки, как обычно, в файле /etc/ssh/sshd_config. Но директивы Port и ListenAddress будут игнорироваться (если выбрано прослушивание сокета).
Другие важные опции командной строки сервера SSH
Указывает путь к файлу сертификата для идентификации sshd во время обмена ключами. Файл сертификата должен соответствовать файлу ключа хоста, указанному с помощью параметра -h или директивы конфигурации HostKey.
Указывает файл, из которого читается ключ хоста. Эта опция должна быть указана, если sshd не запускается от имени пользователя root (поскольку обычные файлы ключей хоста как правило не читаются никем, кроме root). По умолчанию это /etc/ssh/ssh_host_ecdsa_key, /etc/ssh/ssh_host_ed25519_key и /etc/ssh/ssh_host_rsa_key. Можно иметь несколько файлов ключей хоста для разных алгоритмов ключей хоста.
Добавить журналы отладки в файл_журнала вместо системного журнала.
Записывать журналы отладки в стандартный вывод ошибок вместо системного журнала.
Может использоваться для задания параметров в формате, используемом в файле конфигурации (sshd_config). Это полезно для указания параметров, для которых нет отдельного флага командной строки. Самые важные директивы конфигурационного файла рассмотрены выше.
Указывает порт, на котором сервер прослушивает соединения (по умолчанию 22). Допускается использование нескольких портов. Порты, указанные в файле конфигурации с параметром «Port», игнорируются, если указан порт командной строки. Порты, указанные с помощью параметра ListenAddress, переопределяют порты командной строки.
Тихий режим. Ничего не отправляется в системный журнал. Без этой опции обычно запуск, аутентификация и завершение каждого соединения регистрируются.
Как настроить SSH сервер (sshd)
Служба sshd считывает настройки из конфигурационного файла /etc/ssh/sshd_config. Этот файл содержит пары «ключевое слово — аргумент», одна пара на одной строке. Для каждого ключевого слова будет использовано первое полученное значение (исключение составляют несколько директив, которые можно использовать несколько раз, и каждого значение будет учтено, например это Port и ListenAddress).
Опционально аргументы можно заключить в двойные кавычки («), чтобы передать аргументы, содержащие пробелы.
Ключевые слова не чувствительны к регистру, а аргументы чувствительны к регистру.
Многие директивы закомментированы, но они указывают на значение по умолчанию, которое всё равно используется. Если вас устраивает значение по умолчанию, то не нужно ничего менять. Если же вы хотите другое значение, то нужно раскомментировать строку с соответствующей директивой (убрать символ #) и внести изменения.
Дополнительно можно указать опции командной строки — они имеют приоритет над настройками в конфигурационном файле.
Другие опции sshd
Рассмотрены самые востребованные опции конфигурационного файла sshd, кроме них имеется ещё много других, которые настраивают используемые шифры, могут более тонко определить порядок аутентификации и требования к подключающемуся, настраивают возможности пересылки (forwarding), установить выполняемую команду при подключении пользователя, вывод определённой информации при подключении и так далее.
С другими опциями конфигурационного файла sshd (на английском языке) вы сможете ознакомиться с помощью команды:
Информацию об опциях командной строки можно увидеть с помощью:
Запуск сервера SSH с другим конфигурационным файлом
С помощью опции -f можно указать путь до другого конфигурационного файла (значение по умолчанию /etc/ssh/sshd_config). sshd откажется запускаться без конфигурационного файла.
Как разрешить или запретить пользователям входить через SSH
Служба SSH не ведёт свой собственный лог и записывает события в системный журнал. О том, как его просмотреть, обратитесь к разделу «Как проверить журнал событий SSH службы».
Можно настроить подробность ведения журнала — уровень вербальности, то есть какие именно сообщения будут записываться в этот журнал. Для этого используется директива LogLevel. Её значем по умолчанию является INFO. Также доступны следующие варианты:
DEBUG и DEBUG1 являются эквивалентами. DEBUG2 и DEBUG3 — каждый указывает на более высокие уровни вывода отладочной информации.
Ведение журнала на уровне DEBUG нарушает политику приватности пользователей и не рекомендуется.
Оглавление
Содержание «Полное руководство по SSH в Linux и Windows»
1. Что такое SSH. Утилиты SSH
2. Настройка сервера OpenSSH
2.1 Как настроить SSH сервер (sshd)
2.2 Перезапуск службы SSH
2.3 Как изменить порт, на котором работает сервер OpenSSH
2.4 Как выбрать интерфейс (IP) для прослушивания
2.5 Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH
2.6 Запрет и разрешение входа в SSH по паролю обычным пользователям
2.7 Разрешение входа без пароля
2.8 Как разрешить или запретить пользователям входить через SSH
2.9 Шаблоны в файле настроек SSH
2.10 Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH
2.11 Настройка журналов SSH сервера
2.12 Запуск SSH без отсоединения от терминала
2.13 Запуск сервера SSH с другим конфигурационным файлом
2.14 Как проверить конфигурационный файл сервера SSH без запуска службы
2.15 Другие важные опции командной строки сервера SSH
2.16 Другие опции sshd
3. Как подключиться к SSH. Настройка клиента OpenSSH
4. Создание и настройка ключей OpenSSH
5. Копирование файлов с помощью scp и sftp
6. Подсказки и сложные случаи использования OpenSSH
Перезапуск службы SSH
Если между sshd.service и sshd.socket (подробности в разделе «Управление службой OpenSSH») вы выбрали запуск sshd.service, то чтобы внесённые в конфигурационный файл изменения вступили в силу, необходимо перезапустить службу:
Для sshd.socket перезапуск службы требуется только при изменении номера порта (как это показано ниже) и делается так:
sudo systemctl restart sshd.socket
Запуск SSH без отсоединения от терминала
Запуск службы sshd описан в первой части. Также демон sshd можно запустить по имени файла. Для этого нужно указать полный путь до файла sshd, чтобы его узнать:
Запущенная таким образом sshd отключиться от терминала (перейдёт в фоновое выполнение) и не будет выводить что-либо в стандартный вывод.
Можно запустить sshd как процесс без отсоединения от терминала (чтобы процесс не стал демоном), для этого используйте опцию -D — это позволяет упростить процесс мониторинга работы SSH, поскольку сообщения о событиях и проблемах службы будут выводиться в стандартный вывод. Дополнительно можно указать опцию -d для включения режима отладки:
sudo /usr/bin/sshd -D -d
Шаблоны в файле настроек SSH
Шаблон состоит из нуля или более символов, которые не являются белыми пробелами, ‘*’ (подстановочного символа, который соответствует нулю или более символам), а также ‘?’ (подстановочный символ, который соответствует ровно одному любому символу). Например, чтобы охарактеризовать любой хост в наборе доменов «.co.uk» можно использовать следующий шаблон:
Список шаблонов — это несколько шаблонов, разделённых запятой. Шаблоны внутри списка могут иметь противоположное значение если перед ними стоит восклицательный знак («!»). Например, для разрешения ключа использовать откуда угодно внутри организации, кроме пула «dialup», можно использовать следующее (в authorized_keys):
Помните, что отрицательное совпадение никогда само по себе не даст положительных результатов. Например, попытка сопоставить хост «host3» следующими списку шаблонов не найдёт совпадений:
Решением для предыдущей ситуации является включение термина, который приведёт к положительному совпадению, им может быть подстановочный символ:
Related Blogs
Linux System — Jul 24, 2022
How To Auto Login tty1 In Debian 11 Server
How To Enable SSH Root Login In Debian 11
Linux System — Sep 25, 2022
How To Setup Multiple Static IPS On Ubuntu 22
Чуть выше мы рассмотрели вариант, когда пользователю root запретить вход по паролю. Такую же настройку можно сделать для всех остальных пользователей, для этого используется директива PasswordAuthentication. Значением по умолчанию является yes, то есть вход по паролю разрешён. Для запрета входа по паролю всем пользователям, установите значение этой директивы на no.
Разрешение входа без пароля
За разрешение входа без пароля отвечает директива PermitEmptyPasswords. Она нужна для специфичных случаев, чтобы разрешить вход аккаунтам с пустой парольной строкой. По умолчанию установлена на no.