Разрешить доступ по ssh для root

Разрешить доступ по ssh для root Техника

Enable Root Login via SSH in Ubuntu 20.04

To let this tutorial work better, please consider the below Prerequisites:

Set Root password

sudo passwd root

you succeed to change the root password, now you need to change some configuration on for the permit root login.

Configure SSH config to permit root login

nano /etc/ssh/sshd_config

permit root login display

As you see, the is set to No. It means that the root login via SSH has been disabled. So, to enable root login change the to . Find PermitRootLogin and delete No or without-password and type .

PermitRootLogin without-password
PermitRootLogin yes

After edit the SSH config file, press and button twice for save and exit.

Restart SSH service for loading new configuration on SSH_config file.

sudo systemctl restart sshd
sudo service sshd restart

  • 29.09.2019
  • 12 704
  • 02.10.2021
  • 6

Как разрешить root  доступ по SSH в Linux



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

Описание

В последних версиях Ubuntu, например, доступ для пользователя root — отключен, как впрочем и сама учетная запись root. Чтобы это изменить, необходимо внести правки в конфигурационный файл ssh, который обычно расположен по следующему пути: /etc/ssh/sshd_config



Разрешаем root доступ по SSH с вводом пароля

Первым делом ищем в конфигурационном файле строчку PermitRootLogin, скорей всего она будет закомментирована символом #. Для примера в Ubuntu 18.04.3 эта строчка имеет следующий вид:

#PermitRootLogin prohibit-password

Чтобы разрешить доступ для рута через ssh, необходимо эту строчку раскомментировать и заменить на следующую:

PermitRootLogin yes

Необходимо иметь ввиду, что к моменту внесения этих изменений, пользователь root уже должен быть активен в системе, чтобы под ним можно было зайти — о том, как это сделать, можно прочитать в данной статье.

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

sudo service sshd reload

Теперь можно попробовать зайти на сервер через ssh под учетной записью root и введя его пароль.



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:

$ sudo systemctl restart ssh

По умолчанию пароль root не установлен в Ubuntu 20.04, и появится сообщение об ошибке:

Permission denied, please try again

По этой причине нам необходимо установить пароль root.

При появлении запроса введите текущий пароль пользователя, а затем новый пароль root:

$ sudo passwd
[sudo] password for itsecforu 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Учитывая, что ваша система Ubuntu 20.04 разрешает входящий трафик на порту 22 по ssh, теперь вы должны быть готовы к SSH-входу в систему от пользователя root:

$ ssh root@ubuntu-server
root@ubuntu-server's password: 
Welcome to Ubuntu Focal Fossa (GNU/Linux 5.3.0-23-generic x86_64)


Пожалуйста, не спамьте и никого не оскорбляйте.

Это поле для комментариев, а не спамбокс.

Рекламные ссылки не индексируются!

How to Enable root user for SSH Authentication on Ubuntu 20.04 LTS

Best Steps to Install Perl on Rocky Linux 8

Step 1: Prerequisites

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.

Step 2: Edit /etc/ssh/sshd_config File

root@localhost:~# grep -i permitrootlogin /etc/ssh/sshd_config
PermitRootLogin prohibit-password
# the setting of "PermitRootLogin without-password".

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.

root@localhost:~#
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.

Include /etc/ssh/sshd_config.d/*.conf

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m

#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
root@localhost:~# grep -i permitrootlogin /etc/ssh/sshd_config
PermitRootLogin yes
# the setting of "PermitRootLogin without-password".

Step 3: Restart SSH service

After setting the parameter, you need to restart ssh service by using systemctl restart ssh command as shown below.

root@localhost:~# systemctl restart ssh

Then check the service status by using systemctl status ssh command. It should show as active and running as you can see below.

root@localhost:~# systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-11-05 09:03:42 IST; 12min ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 3873 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 3875 (sshd)
Tasks: 1 (limit: 2312)
Memory: 2.5M
CGroup: /system.slice/ssh.service
└─3875 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

Step 4: Login with root

How to Enable root user for SSH Authentication on Ubuntu 20.04 LTS 2

Step 5: Reset root password(Optional)

root@localhost:~#
New password:
Retype new password:
passwd: password updated successfully

В этом руководстве мы рассмотрим, как разрешить или запретить доступ SSH к определенному пользователю или группе в Linux

Дополнительно:  Как исправить BSoD 0x00000139 на Windows 7, 8.1 и 10?

Файл конфигурации OpenSSH по умолчанию имеет две директивы для разрешения и запрета доступа SSH к определенному пользователю (пользователям) или группе.

Во-первых, мы увидим, как разрешить SSH-доступ для определенного пользователя, например sk.

Обратите внимание, что все команды должны выполняться как пользователь root.

Разрешить SSH Доступ пользователю или группе

Перейдите на ваш удаленный сервер и отредактируйте файл sshd_config:

$ sudo vi /etc/ssh/sshd_config

Добавьте или отредактируйте следующую строку:

Замените «sk» на свое имя пользователя.

Вы также можете указать несколько пользователей, как показано ниже.

Чтобы разрешить целую группу, скажем, например, root, добавьте / отредактируйте следующую строку:

Те, кто входит в группу, могут передавать ssh на удаленный сервер.

Сохраните и закройте конфигурационный файл SSH.

Перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

Теперь пользователям sk, itsecfor или всем пользователям под группой «root» разрешено ssh на ваш удаленный сервер. Другие пользователи (кроме sk, itsecforu и пользователи «root») не могут.

Если вы попытаетесь передать ssh на удаленный сервер с помощью любого из недопустимых пользователей, вы получите следующее сообщение об ошибке:

Permission denied, please try again.

Теперь давайте рассмотрим, как запретить / отключить доступ ssh определенному пользователю или группе.

Запретить SSH Доступ пользователю или группе

Чтобы отключить или запретить доступ SSH к любому пользователю или группе, вам необходимо добавить / изменить следующие директивы в файле sshd_config вашего удаленного сервера.

Чтобы запретить доступ SSH к определенному пользователю с именем «sk», отредактируйте файл sshd_config:

 $ sudo vi /etc/ssh/sshd_config 

Добавьте / отредактируйте следующую строку в файле sshd_config.

Аналогично, чтобы запретить доступ SSH нескольким пользователям, укажите имена пользователей как показано ниже.

Чтобы запретить доступ SSH ко всей группе, например root, добавьте:

Сохраните и закройте файл конфигурации ssh.

Перезапустите службу ssh, чтобы внести изменения.

$ sudo systemctl restart sshd

если вы пытаетесь использовать ssh для сервера с использованием запрещенных пользователей, например sk:

Появится следующее сообщение:

 sk@192.168.1.150's password:
Permission denied, please try again.
sk@192.168.1.150's password: 

Что еще более важно, вы также должны отключить вход пользователя root.

Доступ root по ssh считается плохой практикой с точки зрения безопасности.

Чтобы отключить root ssh login, отредактируйте файл sshd_config:

 $ sudo vi / etc / ssh / sshd_config 

Найдите следующую строку, Раскомментируйте ее и установите значение равным no.

 PermitRootLogin no 

Перезапустите службу SSH. Вы только что отключили вход ssh root.

In this article, we will see how to enable root ssh authentication in Fedora Linux. You might have noticed that after installing the latest Fedora Server, you might not be able to login using root account over SSH unless you have enabled it during installation. So in the latest version which are having OpenSSH 7.0 release, by default root login over SSH would be disabled due to the common target attacks on root account in the previous fedora releases.

How to enable root ssh authentication in Fedora Linux

How to Install Fedora 37 Server on VirtualBox Using 3 Easy Steps

On a freshly installed Fedora system, you will find below configuration under /etc/sshd/sshd_config file. If you look closely, you will notice that PermitRootLogin under Authentication is set to prohibit-password. This setting needs to be changed to PermitRootLogin=yes to enable root ssh authentication.

[root@localhost ~]# 
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.

# To modify the system-wide sshd configuration, create a *.conf file under
# /etc/ssh/sshd_config.d/ which will be automatically included below
Include /etc/ssh/sshd_config.d/*.conf

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m

#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
.................................................

So after modification, the new value under /etc/ssh/sshd_config configuration file would look like below.

[root@localhost ~]# 
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.

# To modify the system-wide sshd configuration, create a *.conf file under
# /etc/ssh/sshd_config.d/ which will be automatically included below
Include /etc/ssh/sshd_config.d/*.conf

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m

#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
..................................

After updating the configuration, you need to restart sshd service by using systemctl restart sshd command as shown below.

[root@localhost ~]# systemctl restart sshd

After successfully restarting the service, you can check the status of sshd service by using systemctl status sshd command as shown below.

How to enable root ssh authentication in Fedora Linux 2

login as: 
root@192.168.0.101's password:
Web console: https://localhost:9090/ or https://192.168.0.101:9090/

Last failed login: Sat Feb 4 22:11:54 IST 2023 from 192.168.0.106 on ssh:notty
There were 5 failed login attempts since the last successful login.
Last login: Sat Feb 4 20:25:54 2023

In my project, I have to install some package remotely. If I have to login in debian, I say:

$ ssh root@remotehostname
root@remotehostname's password: 

it logs in successfully.

I have login in ubuntu in directly using

 $ root@remotehostname
 root@remotehostname's password:

it is throw error message in

Permission denied, please try again.

How to solve this problem?

devnull's user avatar

33 gold badges235 silver badges226 bronze badges

asked Aug 23, 2013 at 5:47

Reegan Miranda's user avatar

Reegan Miranda

6 gold badges43 silver badges55 bronze badges

check the /etc/ssh/sshd_config whether the configure PermitRootLogin yes below # Authentication:. If not yes, it doesn’t permit login as root.

you can change it to yes.

Then, restart ssh service to apply the changes:
sudo service sshd restart

‌‌R‌‌‌.'s user avatar

26 silver badges37 bronze badges

answered Aug 23, 2013 at 6:10

vvy's user avatar

Ubuntu documentation says:

By default, the Root account password is locked in Ubuntu.

It also says:

It talks at length about why it’s been done this way.

Дополнительно:  При включении ноутбука запускается биос и не загружается Windows |

Enabling the root account:

sudo -i

To enable the Root account (i.e. set a password) use:

sudo passwd root

Use at your own risk!

Logging in to X as root may cause very serious trouble. If you believe
you need a root account to perform a certain action, please consult
the official support channels first
, to make sure there is not a
better alternative.

Do not enable the root account. Do not set a password for the root account.

A better way is to allow root login using public key authentication, not with password. The reasoning is explained in the Debian mailing list archives.

  1. Open /etc/ssh/sshd_config and check if PermitRootLogin is set to yes. If not, then set it to yes and restart ssh with sudo service ssh restart

  2. Create the .ssh directory in root’s home if it doesn’t exist and make sure it has strict permissions:

    sudo -i mkdir -p .ssh
    sudo -i chmod 700 .ssh
    
  3. Create a public/private key pair in the system you want to login from.

  4. Append your public key to .ssh/authorized_keys of root, and make sure the file has strict permissions:

    cat id_rsa.pub | sudo -i tee -a .ssh/authorized_keys
    sudo -i chmod 600 .ssh/authorized_keys
    

With this setup you should be able to login as root using your private key.

If you have previously enabled the root account, make sure to disable it now:

sudo passwd -l root

answered Aug 30, 2013 at 12:12

janos's user avatar

29 gold badges224 silver badges235 bronze badges

ssh user@remotehostname
user@remotehostname's password:

and then do what you want using sudo or get a root shell the recommended way:

user@remotehostname$ sudo su
Password:
root@remotehostname#

and then do your housekeeping. Instead of ‘sudo su’ you also could use ‘sudo -i’, which is equivalent, or ‘sudo -s’, that keeps the current environment.

See Ubuntu Sudo/Root documentation

answered Sep 1, 2013 at 19:42

h1618's user avatar

1 gold badge8 silver badges3 bronze badges

edit your /etc/sshd_config doing:

sudo /etc/sshd_config

search for line having PermitRootLogin into Authentication Section and uncomment PermitRootLogin or set PermitRootLogin yes. Or simply add this line to the end of file:

PermitRootLogin yes

Next you’ll gonna restart ssh daemon doing

/etc/init.d/ssh restart 
service ssh restart
sudo command
sudo su

to continue session under your root account

answered Aug 26, 2013 at 18:26

Chamullo's user avatar

1 silver badge2 bronze badges

ssh -l user localhost "sudo whoami"
root

So long as:

All that is different was the word sudo was added before carrying out the command

If there are security issues with keys etc then you could take a look at a language called expect — using an expect script you will be able to ssh / telnet what ever it is to a remote host and send passwords etc accordingly

answered Aug 26, 2013 at 18:41

V H's user avatar

V H

2 gold badges28 silver badges48 bronze badges

answered Aug 30, 2013 at 3:46

stink's user avatar

8 silver badges19 bronze badges

  1. Edit sshd_config file vi /etc/ssh/sshd_config
  2. Comment out #PermitRootLogin without-password under Authentication:
  3. insert below PermitRootLogin yes
  4. Save the file.
  5. Restart the ssh service service ssh restart

answered Oct 28, 2014 at 8:17

RoyEp's user avatar

1 bronze badge

By default, the Root account password is locked in Debian based systems like Ubuntu:

sudo -i;

Now set the password for root account:

sudo passwd;

Simply adding a password for root is not enough.

Incoming ssh connections need to be enabled as below:

PermitRootLogin without-password
PermitRootLogin yes

Then restart SSH:

sudo service ssh restart;

Finally Restart the system:

sudo reboot;

answered Feb 8, 2016 at 12:28

Pratik Patil's user avatar

Pratik Patil

3 gold badges31 silver badges31 bronze badges

  1. Edit the
    /etc/ssh/sshd_config file and change the line that says “PermitRootLogin forced-commands-only” to “PermitRootLogin without-password”.

  2. Restart the sshd server with “service sshd restart”.

SSH your machine using root with your keypair

answered May 19, 2018 at 11:57

Ali Azhar's user avatar

Ali Azhar

19 silver badges14 bronze badges

зачем при отказе от пароля при авторизации на сервере теперь мне нужно вводить пароль для подтверждения прав рута?

программа sudo предназначена для выполнения (любых или указанных) команд от имени другого указанного пользователя (по умолчанию — пользователя root). по умолчанию запрашивается пароль текущего пользователя, для подтверждения, что программу sudo запустил именно этот пользователь (а не для «подтверждения прав рута»).

кстати, данное поведение может быть переопределено: см. описание флагов rootpw, targetpw и runaspw в man 5 sudoers.

Должно быть что-то одно:
— Или отказ от авторизации по паролям и авторизация только по ключу мера достаточная и root убирать никуда не надо
— Или необходимо сделать консистентную авторизацию, т/е sudo должно спрашивать не пароль у пользователя, а RSA ключ у ssh клиента.

запрос пароля на удалённом сервере, куда пользователь получает доступ только по ключу, может послужить дополнительным барьером для случаев компрометации секретного ключа или машины пользователя.

Есть еще вариант убрать полностью пароль у sudo но тогда какой вообще в нем смысл? Это по сути будет тот же root со ступенькой (необходимость каждый чих вводить через sudo)

даже если пользователь, которому разрешено использовать программу sudo, всего один, и даже если ему разрешено выполнять любые команды от имени любого пользователя, автоматическое логирование всех запусков программы sudo может оказать существенную помощь при устранении ситуации «что-то пошло не так».

если же таких пользователей несколько, логирование ещё более полезно.

Делал согласно этой инструкции

вероятно, лучше использовать уже готовый пакет. если вы используете стабильный выпуск (jessie, версия 8) или новее, в репозиториях есть необходимые зависимости. если более старый выпуск, возможно, потребуется пересборка пакета с указанием более старых версий зависимостей. в любом случае, лучше использовать пакет (пусть даже пересобранный), чем загрязнять систему не контролируемыми пакетным менеджером программами.

pam-аутентификация по ключу, с моей точки зрения, не сможет послужить полноценной заменой вводу пароля в случае компрометации секретного ключа или машины пользователя. разве что частично: если для аутентификации используется другой ключ (не тот же, что и для доступа по ssh), защищённый кодовой фразой.


пару слов по поводу ответа от Pavel Mayorov

На сервере никто не работает через ssh, его только администрируют. А потому обычный пользователь и не нужен.

ситуация, когда «пользователь» у сервера всего один — встречается, думаю, довольно часто.

Дополнительно:  Root your unit

но и ситуация, когда «пользователей» больше одного — тоже далеко не редкость.

и вряд ли редкостью можно назвать ситуацию, когда пользователи выполняют именно пользовательские задачи, не связанные с администрированием. та же веб-разработка, например. для которой может потребоваться выполнение некоторых административных задач (например, конфигурирование и управление http-сервером), в чём программа sudo, несомненно, способна послужить незаменимым подспорьем.

За веб-разработку на сервере надо бить по рукам. Для этой цели виртуалки есть.

да, «сервер» вполне может быть и виртуальной машиной. способы же использования машины (как виртуальной, так и «железной», как выполняющей роль «сервера», так и выполняющей любую иную роль), вероятно, определяет её владелец, а не мы с вами.

к тому же веб-разработка была приведена лишь в качестве иллюстрации. неплохим семейством иллюстраций может быть использование сервера(-ов) для ресурсоёмких задач: компиляции, сборки пакетов, рендеринга, конвертации видео, data-mining-а, той же виртуализации и т.д. и т.п.


обновление по поводу «неработоспособности» пакета

как написано в man pam_ssh_agent_auth (страница идёт в комплекте с пакетом), надо добавить в /etc/pam.d/sudo строку примерно такого содержания:

auth sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys

она должна идти до строк с include-ами.

в указанный файл с ключами /etc/security/authorized_keys надо добавить тот публичный ключ, по которому и будет происходить pam-аутентификация. в принципе, расположение этого файла — произвольное, и может быть даже привязано к домашнему каталогу пользователя: см. секцию примеров в упомянутой man-странице.

при подключении надо, естественно, пропускать соединение с вашим ssh-agent-ом с «сервера». либо с помощью соответствующей опции в ~/.ssh/config, либо с помощью опции -A программы ssh.

если всё перечисленное не помогает, добавьте в конце той же строки (в файле /etc/pam.d/sudo) директиву debug. тогда в /var/log/auth.log будет более подробное описание.

Когда дело доходит до доступа к удаленным устройствам, таким как серверы, маршрутизаторы и коммутаторы, протокол SSH всегда настоятельно рекомендуется, учитывая его способность шифровать трафик и защищать вас от любого злоумышленника, кто может попытаться прослушать ваши соединения.

Как бы то ни было, настройки SSH по умолчанию не являются безошибочными, и необходимы дополнительные настройки, чтобы сделать протокол еще более безопасным.

В этом руководстве мы рассмотрим различные способы, которые вы можете использовать для защиты и усиления OpenSSH на вашем сервере.

1. Настройте аутентификацию по SSH по ключам

Ранее мы уже рассматривали этот момент:

На этом этапе у вас будет доступ  к удаленному серверу только с использованием аутентификации по ключу SSH.

2. Отключите запросы SSH пользователя без пароля

Другим рекомендуемым способом усиления безопасности вашего сервера является отключение SSH-входа пользователей без паролей.

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

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

PermitEmptyPasswords no

Затем перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

3. Отключите вход пользователя root по SSH

Разрешение удаленного входа в систему пользователю root – это всегда плохая идея, которая может поставить под угрозу безопасность вашей системы.

По этой причине всегда рекомендуется отключать удаленный вход по SSH в систему root и вместо этого придерживаться обычного пользователя без полномочий root.

Еще раз, зайдите в файл конфигурации и измените эту строку, как показано далее:

PermitRootLogin no

Затем перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

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

4. Используйте протокол SSH 2

SSH поставляется в двух версиях: протокол SSH 1 и протокол 2.

Протокол SSH 2 был представлен в 2006 году и является более безопасным, чем протокол 1, благодаря строгим криптографическим проверкам и надежным алгоритмам.

По умолчанию SSH использует протокол 1.

Чтобы изменить его на более безопасный протокол 2, добавьте следующую строку в файл конфигурации:

Protocol 2

Как всегда, перезапустите SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

В дальнейшем SSH будет использовать протокол 2 по умолчанию.

Чтобы проверить, поддерживается ли протокол SSH 2, выполните команду:

$ ssh -1 user@remote-IP

Вы получите сообщение об ошибке   “SSH protocol v.1 is no longer supported”.

Кроме того, вы можете просто указать тег -2, чтобы быть уверенным, что протокол 2 является используемым по умолчанию протоколом.

$ ssh -2 itsecforu@192.168.2.108

5. Установите значение времени простоя соединения SSH

Если вы оставляете свой компьютер без присмотра в течение продолжительного времени с бездействующим SSH-соединением, это может создать угрозу безопасности.

Кто-то сможет просто принять сеанс SSH и делать все, что пожелает.

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

Еще раз откройте ваш файл конфигурации SSH и найдите директиву «ClientAliveInterval».

Назначьте разумное значение, например, я установил ограничение в 180 секунд.

ClientAliveInterval 180

Это означает, что сессия SSH будет прервана, если не будет зарегистрировано никаких действий через 3 минуты, что эквивалентно 180 секундам.

Затем перезапустите демон SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

6. Ограничьте доступ по SSH для определенных пользователей.

Для дополнительного уровня безопасности вы можете определить пользователей, которым требуется протокол SSH для входа в систему и выполнения удаленных задач в системе.

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

В приведенном ниже примере я разрешил пользователям «itsecforu» и «itisgood» иметь удаленный доступ к системе через SSH.

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

AllowUsers itsecforu itisgood

После этого перезапустите SSH для сохранения изменений.

$ sudo systemctl restart sshd

7. Настройте ограничение попыток ввода пароля.

Еще один способ добавить уровень безопасности – ограничить количество попыток входа в систему SSH, чтобы после нескольких неудачных попыток соединение обрывалось.

Итак, еще раз зайдите в файл конфигурации и найдите директиву MaxAuthTries и определите значение для максимального количества попыток.

В этом примере предел был установлен в 3 попытки, как показано далее:

MaxAuthTries 3

И, наконец, перезапустите службу SSH, как в предыдущих случаях.

Заключение

Это был обзор некоторых мер, которые вы можете предпринять для защиты удаленных соединений SSH.

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


Пожалуйста, не спамьте и никого не оскорбляйте.

Это поле для комментариев, а не спамбокс.

Рекламные ссылки не индексируются!

Оцените статью
Master Hi-technology
Добавить комментарий