Ssh server

Opening Backdoors into the Enterprise

Remote SSH port forwarding is commonly used by employees to open backdoors into the enterprise. For example, the employee may set get a free-tier server from Amazon AWS, and log in from the office to that server, specifying remote forwarding from a port on the server to some server or application on the internal enterprise network. Multiple remote forwards may be specified to open access to more than one application.

The employee would also set on the server (most employees do not have fixed IP addresses at home, so they cannot restrict the IP address).

For example, the following command opens access to an internal Postgres database at port 5432 and an internal SSH port at port 2222.

Редактирование прав

Все, что нужно для разрешения проблем, связанных с правами в Linux.

sudo — выдает права суперпользователя. Используется перед любой командой, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Fedora, введем: sudo dnf update. При этом система запросит пароль администратора.

sudo su — на время превращает все вводимые в терминал команды в команды суперпользователя. Пригодится, если предстоит вносить много изменений в системные файлы, которые нельзя редактировать без соответствующих прав.

sudo !! — запускает предыдущую команду от имени администратора. Пригодится, если уже ввели команду, требующую прав суперпользователя, но забыли их затребовать. Не придется вводить весь текст заново. Достаточно сокращенной версии.

chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором опций, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.

chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий: chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать. На примере этого может выглядеть следующим образом: есть пользователь Timeweb, которому я хочу передать права на файл timeweb-file.txt с рабочего стола. Сделаю это командой:

chown Timeweb ~/Desktop/timeweb-file.txt

Step 3 — Authenticate to Ubuntu Server Using SSH Keys

If you have successfully completed one of the procedures above, you should be able to log into the remote host without the remote account’s password.

The basic process is the same:

If this is your first time connecting to this host (if you used the last method above), you may see something like this:

This means that your local computer does not recognize the remote host. Type “yes” and then press to continue.

If you did not supply a passphrase for your private key, you will be logged in immediately. If you supplied a passphrase for the private key when you created the key, you will be prompted to enter it now (note that your keystrokes will not display in the terminal session for security). After authenticating, a new shell session should open for you with the configured account on the Ubuntu server.

If key-based authentication was successful, continue on to learn how to further secure your system by disabling password authentication.

Как использовать команду ssh

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

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

Основной синтаксис команды следующий:

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

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

У каждого хоста есть уникальный отпечаток, который хранится в файле .

Введите чтобы сохранить удаленный отпечаток пальца, и вам будет предложено ввести пароль.

После ввода пароля вы войдете в удаленную машину.

Если имя пользователя не указано, команда использует текущее имя для входа в систему.

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

Имя пользователя также можно указать с помощью опции :

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

Чтобы подключиться к порту, от порта по умолчанию, используйте параметр чтобы указать порт:

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

Чтобы повысить уровень детализации, используйте или .

Команда принимает ряд параметров.

Для получения полного списка всех параметров прочтите страницу руководства по , набрав в терминале .

Как подключиться к серверу без пароля

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

  1. Для выполнения данной операции нам потребуется отдельная утилита под названием «PuTTYgen». Она автоматически устанавливается вместе с PuTTY, поэтому зайдем в меню «Пуск» и запустим ее оттуда.
  2. Далее перемещаемся в меню «Key» и устанавливаем значение «SSH-2 RSA key». После этого кликаем по кнопке «Generate key pair».
  3. Как только ключ будет сгенерирован, сохраним его в публичном и приватном варианте.
  4. Теперь перемещаемся в PuTTY и открываем раздел «Auth» — в него добавляем приватный ключ.
  5. Открываем раздел «Session» и сохраняем в нем пресет для подключения, как мы делали ранее. Затем подключаемся к серверу по своему адресу.
  6. Осталось подключиться к серверу и отправить на него открытый ключ. Для этого вставляем его в конец файла /root/.ssh/authorized_keys. Ключ мы можем скопировать напрямую из утилиты, в которой он был сгенерирован.

Готово! Теперь при повторном входе на сервер авторизация не потребуется. Главное – сохранить настройки сессии, чтобы не вводить ключ каждый раз.

Сегодня мы разобрали одну из важнейших тем, с которой сталкивается каждый, кто начинает изучать администрирование серверов. Использование PuTTY позволяет подключаться по протоколу SSH и удаленно работать с компьютером на операционной системе Linux. Такой способ позволяет легко администрировать устройство и всегда быть в курсе возникающих проблем. Надеемся, что наша статья была полезной, и у вас не осталось вопросов

Спасибо за внимание!

Запустить SSH в фоновом режиме

Существует несколько способов запустить ssh соединение в фоновом режиме — то есть освободим текущий терминал.

-L, screen, tmux, nohup

Мне запустить ssh фоном из скрипта помог nohup, поэтому начнём с него

nohup ssh user@host «cd scripts;python3 my_script.py $ARG1 $ARG2; exit» &

Для чего это было нужно: Python скрипт сначала
открывал одно ssh соединение из
subprocess
там выполнялась команда для запуска

мониторинга потребления памяти

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

Чтобы уйдя из первого подключения не оборвать мониторинг потребления памяти
перед ssh нужно было добавить nohup, а в самом конце поставить &

Local Forwarding

Local forwarding is used to forward a port from the client machine to the server machine. Basically, the SSH client listens for connections on a configured port, and when it receives a connection, it tunnels the connection to an SSH server. The server connects to a configurated destination port, possibly on a different machine than the SSH server.

Typical uses for local port forwarding include:

  • Tunneling sessions and file transfers through jump servers

  • Connecting to a service on an internal network from the outside

  • Connecting to a remote file share over the Internet

Quite a few organizations for all incoming SSH access through a single jump server. The server may be a standard Linux/Unix box, usually with some extra hardening, intrusion detection, and/or logging, or it may be a commercial jump server solution.

Many jump servers allow incoming port forwarding, once the connection has been authenticated. Such port forwarding is convenient, because it allows tech-savvy users to use internal resources quite transparently. For example, they may forward a port on their local machine to the corporate intranet web server, to an internal mail server’s IMAP port, to a local file server’s 445 and 139 ports, to a printer, to a version control repository, or to almost any other system on the internal network. Frequently, the port is tunneled to an SSH port on an internal machine.

In OpenSSH, local port forwarding is configured using the option:

This example opens a connection to the jump server, and forwards any connection to port 80 on the local machine to port 80 on .

By default, anyone (even on different machines) can connect to the specified port on the SSH client machine. However, this can be restricted to programs on the same host by supplying a bind address:

The option in the OpenSSH client configuration file can be used to configure forwarding without having to specify it on command line.

Basic Syntax

To connect to a remote system using SSH, we’ll use the command. The most basic form of the command is:

The in this example is the IP address or domain name that you are trying to connect to.

This command assumes that your username on the remote system is the same as your username on your local system.

If your username is different on the remote system, you can specify it by using this syntax:

Once you have connected to the server, you may be asked to verify your identity by providing a password. Later, we will cover how to generate keys to use instead of passwords.

To exit the ssh session and return back into your local shell session, type:

Secure SSH configuration file

The “/etc/ssh/sshd_config” file is the system-wide configuration file for SSH which allows you to set different options to improve the security of an SSH server. The default configuration in the config file is very insecure, so you need to edit it first and set proper options to improve the security.

To edit the “/etc/ssh/sshd_config” file, run

Change SSH listening port

By default, SSH listens on port 22. Attackers use port scanners to see whether an SSH service is running or not. It is recommended to change the default port.

To change the default port to 2200, change:

to

Only use Protocol 2

Version 1 of the protocol contains security vulnerabilities. Protocol 2 is the default entry on Ubuntu.

Change the line shown below:

Limit users access

It is necessary to allow only specific users to log in to SSH. It can improve your security. By default, this option is not available in the SSH configuration file.

To allow “user1” and “user2,” add the following line:

To deny “baduser1” and “baduser2,” add the following line:

Disable root login

It is not necessary to log in as root via ssh over a network. Normal users can also use or to gain root level access. Most attackers will try to use root user to log in. This is a big security risk, so it is recommended to deny the root login.

To disable root login, change the line

to

Hide last login

You can hide who logged in last when a user logs in.

For this, change the line

to

Restrict the interface to log in

By default, ssh will listen on all network interfaces. If you want to allow an SSH connection to be accepted from specific IP addresses, you can change the line

to

Disable password uthentication

Using password authentication is a big security risk if your user uses a weak password. It is recommended to use “ssh keys.” An “ssh key” can contain over 600 random characters and be difficult to break.

For this, change the line

to

Disable .rhosts files

The .rhosts files specify which users can access the r-commands (rsh, rcp, rlogin, etc.) on the local machine without a password. By default an .rhosts file is disabled; if not, then change the lines as shown below.

Disable host-based authentication

SSH’s host-based authentication is more secure than .rhosts authentication. However, it is not recommended that hosts trust one another. By default, this option is disabled.

If not, then change the line shown below.

Set a login grace timeout

The “LoginGraceTime” specifies how long after a connection request the server will wait before disconnecting. It is recommended to reduce it to 60 seconds.

For this, change the line

to

Set maximum startup connections

Setting up a proper maximum number of concurrent connections to the SSH daemon can be helpful against a brute-force attack.

For this, change the line

to

Disable forwarding

The port forwarding technique is used by attackers to tunnel network connections through an SSH session to log into systems. It is recommend to disable this option.

For this, change the line

to

Log more information

By default, SSH logs everything. If you want to log more information like failed login attempts. you can change the value of this to “VERBOSE.”

For this, change the line

to

Disable empty passwords

It is necessary to deny users with empty passwords on your server. By default is disabled in Ubuntu.

If not, then change the line shown below.

Set idle timeout interval

By default, this options is not available in the SSH default configuration file. It is recommended to set a proper idle timeout to avoid an unattended ssh session.

For this, add the following lines.

Strict mode

This will prevent the use of insecure home directory and key file permissions. By default, this option is enabled.

If not, then change the following line.

Now save and exit the /etc/ssh/sshd_config file and restart the SSH server.

Step 3 — Authenticating to Your Ubuntu Server Using SSH Keys

If you have successfully completed one of the procedures above, you should be able to log into the remote host without providing the remote account’s password.

The basic process is the same:

If this is your first time connecting to this host (if you used the last method above), you may see something like this:

This means that your local computer does not recognize the remote host. Type “yes” and then press to continue.

If you did not supply a passphrase for your private key, you will be logged in immediately. If you supplied a passphrase for the private key when you created the key, you will be prompted to enter it now (note that your keystrokes will not display in the terminal session for security). After authenticating, a new shell session should open for you with the configured account on the Ubuntu server.

If key-based authentication was successful, continue on to learn how to further secure your system by disabling password authentication.

Conclusion

The above instructions are very powerful techniques for securing your SSH server. This post covers all of the information most users will need for an SSH server. If you have any questions feel free to comment below.

Never Miss Out

Receive updates of our latest tutorials.

Hitesh Jethva

Over 5 years of experience as IT system administrator for IT company in India. My skills include a deep knowledge of Rehat/Centos, Ubuntu nginx and Apache, Mysql, Subversion, Linux, Ubuntu, web hosting, web server, squied proxy, NFS, FTP, DNS, Samba, ldap, Openvpn, Haproxy, Amazon web services, WHMCS, Openstack Cloud, Postfix Mail Server, Security etc.

Ручной способ копирования

Данный способ подойдет в том случае если у вас нет ssh доступа к серверу. Придется вручную добавить содержание файла ключей на сервер. Для просмотра файла ключей используем cat:

cat ~/.ssh/id_rsa.pub

1 cat~.sshid_rsa.pub

Содержимое будет примерно таким:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0Xvh2xPff6SQ1BLzkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosiuS66+PujOO+xt2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7UASsmY095ywPsBo1XQ9PqhnN1YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ==demo@test

Заходим на удаленную машину, любым доступным способом.

Вводим:

mkdir -p ~/.ssh

1 mkdir-p~.ssh

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

Далее переходим к созданию или редактированию файла authorized_keys.

Создание данного файла и внесение в него значения ключей:

echo «значение_публичного_ключа» >> ~/.ssh/authorized_keys

1 echo»значение_публичного_ключа»>>~.sshauthorized_keys

Подставляем значение публичного ключа и нажимаем enter. Затем изменим права:

chmod -R go= ~/.ssh

1 chmod-Rgo=~.ssh

Если файл создается от имени пользователя root, то придется изменить владельца:

chown -R user:user ~/.ssh

1 chown-Ruseruser~.ssh

Вместо user подставляем имя пользователя в домашней папке которого создали файл ключей.

Процесс входа на удаленный сервер после копирования ключей будет выглядеть так:

ssh username@remote_host

1 ssh username@remote_host

Шаг 4 — Отключение аутентификации по паролю на вашем сервере

Если вам удалось войти в ваш удалённый аккаунт на удалённом хосте по SSH без ввода пароля, вы успешно настроили аутентификацию по ключу SSH для вашего аккаунта. Однако возможность входить на сервер с использованием пароля всё есть активна, что означает, что ваш сервер уязвим для атак с перебором пароля (brute-force attacks).

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

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

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

Внутри файла найдите директиву . Она может быть закомментирована. Раскомментируйте её при необходимости и установите её значение в “no”. Это отключит возможность входа на сервер по паролю.

/etc/ssh/sshd_config

Сохраните и закройте файл нажав + , затем для подтверждения сохранения файла, а далее для выхода из текстового редактора nano. Для применения внесённых изменений нам необходимо перезапустить сервис :

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

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

Теперь демон SSH на вашем сервере с Ubuntu работает только с ключами SSH. Аутентификация по паролю полностью отключена.

Структура и шаблоны файла конфигурации SSH

Файл конфигурации SSH имеет следующую структуру:

Содержимое файла конфигурации клиента SSH организовано в строфы (разделы). Каждый раздел начинается с директивы и содержит определенные параметры SSH, которые используются при установлении соединения с удаленным SSH-сервером.

Отступ не требуется, но рекомендуется, так как он облегчает чтение файла.

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

  • — соответствует нулю или более символам. Например, соответствует всем хостам, а Соответствует хостам в подсети .
  • — Соответствует ровно одному символу. Шаблон, соответствует всем хостам в .
  • — При использовании в начале шаблона аннулирует совпадение. Например, матчи любого хоста в подсети , кроме .

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

Файл конфигурации SSH также читается другими программами, такими как , и .

Минимально необходимые команды

  • Разрешение использования порта в брандмауэре. Если вы пользуетесь на своём компьютере с операционной системой Ubuntu брандмауэром для контроля соединений, примените команду, разрешающую использование интернет-подключения утилитой SSH: sudo ufw allow 2222. Вместо 2222 пропишите номер порта, который использовали лично вы.
  • Подключение к серверу. Немного выше мы уже писали, как можно подключаться к удалённому компьютеру, но не помешает напомнить. Введите команду вида ssh имя_пользователя@ip_адрес, где в первом параметре напишите логин для подсоединения к компьютеру, а во втором — его адрес в сети.
  • Выполнение удалённых команд. Допустим, вам нужно удалённо выполнить какую-либо команду на компьютере, к которому вы подключаетесь. Для этого к команде для подключения к компьютеру, указанной в предыдущем пункте, добавьте команда, которую нужно исполнить. например, вернёмся, к примеру, с Васей Пупкиным: ssh vasya_pupkin@132.14.25.10 ls. На удалённом компьютере будет выполнена команда ls.
  • Аутентификация на сервере с применением ключа. Поскольку пароль очень легко подобрать, наиболее надёжным и безопасным способом подключения к удалённому компьютеру через сеть будет с использованием специального ключа. Чтобы создать его, воспользуйтесь командой ssh-keygen -t rsa. Ответьте на все вопросы, которые у вас спросит утилита настройки. Затем отправьте созданный ключ на удалённый сервер: ssh-copy-id -i ~/.ssh/id_rsa.pub имя_пользователя@адрес_компьютера. Теперь, когда вы будете подключаться к этой удалённой машине, пароль запрашивается не будет, а будет использоваться персональный ключ. 
  • Передача файлов. Иногда необходимо передать какие-то файлы или документы на удалённый компьютер. Для этого вам понадобится следующая команда: scp /расположение/файла имя_пользователя@адрес_компьютера: расположение/папки. Вот конкретный образец на основе примера с Васей Пупкиным): scp /home/text.pdf vasya_pupkin@132.14.25.10:home/documents. Чтобы использовать сжатие файлов и пересылать целые папки, поможет команда tar czf — /home/user/file | ssh имя_пользователя@адрес_компьютера tar -xvzf -C /home/папка_пользователя/.
  • Запуск графического интерфейса программ на удалённом компьютере. К примеру, вы работаете из дому, но необходимое программное обеспечение установлено на вашем рабочем компьютере. Его можно запустить удалённо, а на вашем домашнем ПК будет отображаться лишь интерфейс программы, тогда как все вычисления и обработка данных будет происходить на рабочей машине. Если вы уже ранее активировали возможность запуска графического интерфейса программ, воспользуйтесь вот такой командой: ssh -XC имя_пользователя@адрес_компьютера «название_программы».

Шаг 4 — Отключение аутентификации с помощью пароля на сервере

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

Прежде чем выполнять описанные в настоящем разделе шаги, убедитесь, что вы настроили аутентификацию на базе ключей SSH для учетной записи root на этом сервере, или (предпочтительно) вы настроили аутентификацию на базе ключей SSH для учетной записи сервера без привилегий root и с привилегиями

На этом шаге вход в систему по паролю будет заблокирован, поэтому очень важно сохранить возможность доступа с правами администратора

Подтвердив права администратора для удаленной учетной записи, выполните вход на удаленный сервер с помощью ключей SSH как пользователь с привилегиями root или как пользователь с привилегиями . Затем откройте файл конфигурации демона SSH:

Найдите в файле директиву . Эта строка может быть прокомментирована с помощью в начале строки. Раскомментируйте строку, удалив , и установите значение . После этого вы не сможете выполнять вход в систему через SSH с использованием паролей учетной записи:

/etc/ssh/sshd_config

Сохраните и закройте файл, нажав , затем нажмите для подтверждения сохранения файла, а затем нажмите для выхода из nano. Для фактической активации этих изменений нужно перезапустить службу :

В качестве меры предосторожности откройте новое окно терминала и проверьте правильность работы службы SSH, прежде чем закрывать этот сеанс:

После проверки корректной работы службы SSH вы можете безопасно закрыть все текущие сеансы сервера.

Теперь демон SSH на вашем сервере Ubuntu будет реагировать только на аутентификацию с помощью ключей SSH. Логины на базе пароля были отключены.

Настройка SSH

При изменении конфигурации SSH вы меняете настройки сервера sshd.

В Ubuntu основной файл конфигурации sshd находится в каталоге .

Выполните резервное копирование текущей версии этого файла перед началом редактирования:

Откройте файл в текстовом редакторе:

Скорее всего, вы захотите оставить большинство опций в этом файле без изменений

Однако существует несколько настроек, на которые вам стоит обратить особое внимание:. /etc/ssh/sshd_config

/etc/ssh/sshd_config

Объявление порта указывает, подключения к какому порту будет отслеживать сервер sshd. По умолчанию используется порт . Вам, скорее всего, не придется изменять данную настройку, если только у вас нет конкретных причин для иного решения. Если вы решите изменить порт, позже мы покажем, как подключиться к новому порту.

/etc/ssh/sshd_config

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

/etc/ssh/sshd_config

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

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

/etc/ssh/sshd_config

Эти параметры определяют некоторые данные для входа в систему.

Опция определяет количество секунд, в течение которых следует сохранять подключение при отсутствии успешных попыток входа в систему.

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

определяет, разрешен ли вход с помощью пользователя с правами root.

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

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

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

/etc/ssh/sshd_config

Эти параметры используются для настройки такой возможности, как X11 Forwarding. X11 Forwarding позволяет просматривать графический пользовательский интерфейс (GUI) удаленной системы на локальной системе.

Эта функция должна быть активирована на сервере и передана клиенту SSH во время подключения с помощью опции .

После внесения изменений сохраните и закройте файл, введя , , а затем нажмите .

Если вы внесли изменения в какие-либо настройки в файле , необходимо перезапустить ваш сервер sshd, чтобы изменения вступили в силу:

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector