Linux настройка ssh конфиг

Use SSH Config File to Manage SSH Connections to Various Remote Servers

Using SSH profiles can help you in cases where you regularly connect to various servers. No need to remember the IP address and other such details for SSH connection.

If you are even a tad bit familiar with SSH, you know that you can use it to connect to remote Linux systems.

Using SSH to connect to remote system is simple. All you need to do is to use a command like this:

This connects to the default SSH port 22. You may specify the port as well if you want.

Now this is all plain and simple if you just have one server. Even if you don’t remember the server’s IP address, you can perform a reverse search to the history using the famous terminal keyboard shortcut Ctrl+R and find the SSH command you used in the past.

But things get complicated when you have several servers to manage. I have around ten servers that I connect to from time to time. Some are production servers and some are test servers.

Now keeping a track of these servers is not easy. Even if I can find the SSH commands from the history, it is difficult to guess which IP belongs to which server.

Of course, I can open my dashboards on Linode, UpCloud, DigitalOcean and Google Cloud to get the IP or keep a list on my local system.

A better and easier way is to use SSH config file.

Using SSH config file for easily connecting to remote servers

Ssh Config

The SSH config file allows you to create different profiles for different host configurations. There is no limit to such profiles and you may add as many as possible.

So, if you connect to multiple remote systems via SSH, creating SSH profiles will be a good move to save your time.

Let me show you how to use it.

Step 1: Create the SSH config file

When you install SSH, you’ll have a ~/.ssh directory created automatically. This direct contains your public key, private key a known_hosts file. Your config is also stored here.

At least on Ubuntu, the SSH config file is not created by default. You can easily create this file using the touch command like this:

Step 2: Add an SSH profile in the config file

Now that you have the SSH config file, you can edit it using Vim or Nano. Let me show you an example of the syntax which you should follow.

Читайте также:  Передать файл через ftp linux

Let’s say you connect to a server with IP 275.128.172.46. Your username is Alice and the server is used for hosting your website. To harden SSH security, you use port 1500 instead of the default SSH port 22.

You can add all this information in the following manner in your ~/.ssh/config file:

Host website Hostname 275.128.172.46 User alice Port 1500

Just save the information in the file. No need to restart any service.

Now, instead of writing a long command like this:

You can just use this command (tab completion works as well):

When you run the above command, ssh looks for a Host named website in the ~/.ssh/config. If it finds a host with that name, it gets all the information related and used it for making an SSH connection.

You might wonder about a few things, so I’ll mention it here:

  • There is no space or tab indention restriction while entering the host information. Space or tab indention are used for making the config file easily understandable.
  • The Hostname can be the IP address of the server or a hostname that can be resolved on your network.
  • All the parameters like hostname, user and port are optional. However, I personally advise keeping at least hostname because that’s what you need (and you forget) most of the time.
  • If your SSH config file is wrongly configured, it will result in an error when you try to use it for SSH connection.
  • You cannot save passwords in SSH config. I advise adding your public SSH key to the server for easy access.

Step 3: Adding multiple profiles in SSH config file

The previous step gave you an idea about how to add an SSH profile. Let’s take it to the next step by adding multiple profiles in it.

Here’s what the SSH config file looks like now:

Host website Hostname 275.128.172.46 User alice Port 1500 Host forum-server Hostname 275.128.172.47 User alice Host main-server Hostname 275.128.172.49 Host common-test-server Hostname test-server Host * User root

This time, I have added four different SSH profiles in it.

Did you notice the Host * entry at the end of the file? You can use this entry to for adding a parameter common to all profiles if that parameter hasn’t been mentioned for the profile explicitly.

So if I try to use the main-server SSH profile, it will automatically take root user.

ssh main-server = ssh [email protected]

Order of the SSH configuration

The ssh configuration follows the following order:

  • command-line options
  • user’s configuration file (~/.ssh/config)
  • system-wide configuration file (/etc/ssh/ssh_config)

This means that the priority is given to the command you enter and then it looks into ~/.ssh/config and then in /etc/ssh/ssh_config.

So, if you want to override a profile, you can do that using the -o option of the ssh command.

For example, if I use this command:

It will take user bob instead of the user alice as defined in the ~/.ssh/config (in the previous step).

There’s a lot more to SSH config

To be honest, there is so much more to SSH config file that cannot be covered in a single article. You can use name/IP matching, subnets and what not.

Читайте также:  Linux check connection to server

The scope of this article was to introduce you to SSH config and help you create SSH profiles for easily connecting to various remote Linux systems.

You can always refer to the man page of ssh_config to know more about the parameters you can use while creating your SSH config file.

I hope this SSH tip was helpful to you. If you already use SSH config file and have a some nifty tip with you, do share it with the rest of us in the comment section.

Источник

Как установить и настроить SSH в Ubuntu 22.04

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

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

В инструкции ниже мы опишем процесс установки SSH в Ubuntu 22.04, а также последующей его настройки.

Шаг 1. Подготовка Ubuntu

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

sudo apt update && sudo apt upgrade

Результат выполненной команды представлен на картинке ниже.

Теперь все пакеты apt обновлены и имеют последние версии. После данного шага можно переходить непосредственно к главной теме статьи – установке SSH.

Шаг 2. Установка SSH в Ubuntu

OpenSSH не предустанавливается в системе, поэтому выполним его установку вручную. Чтобы это сделать, в окне терминала вводим:

sudo apt install openssh-server

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

На все предложения системы в момент установки отвечаем утвердительно.

Установка прошла успешно. Теперь перейдем к запуску службы.

Шаг 3. Запуск SSH

На данном этапе необходимо включить только что установленную службу. Поможет в этом команда ниже:

sudo systemctl enable --now ssh

При успешном запуске вы увидите следующее системное сообщение.

Ключ —now в команде выше отвечает за одновременный запуск программы и добавление ее в автозагрузку.

Теперь проверим, что служба включена и успешно функционирует. Для этого вводим:

sudo systemctl status ssh

В результате система выдаст следующее сообщение:

Как видно по картинке выше, установленная служба успешно функционирует. Об этом говорит строка Active: active (running) .

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

sudo systemctl disable ssh

Шаг 4. Настройка брандмауэра

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

В нашем случае установлен интерфейс UFW, поэтому воспользуемся следующей командой:

Результат команды представлен на картинке ниже.

Как видно по картинке, трафик по протоколу SSH разрешен. Если у вас он отсутствует в списке, то необходимо разрешить входящие SSH-соединения. В этом поможет команда:

Шаг 5. Подключение к серверу

После выполнения всех предыдущих шагов можно наконец переходить ко входу на сервер, используя протокол SSH.

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

В строку терминала вводим команду:

ssh имя_пользователя@IP_адрес
ssh имя_пользователя@домен

Важно: Для успешного подключения к удаленному серверу, на нем и на компьютере пользователя, откуда будет выполняться подключение, должен быть установлен и настроен SSH. На облачных серверах Timeweb Cloud SSH уже установлен.

Шаг 6. Настройка конфигурации SSH

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

Читайте также:  Linux find process by name

Основные настройки OpenSSH-сервера хранятся в главном конфигурационном файле – sshd_config (расположение: /etc/ssh ). Перед тем, как приступать к редактированию, необходимо создать резервную копию данного файла:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.initial

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

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

 sudo nano /etc/ssh/sshd_config

В открывшемся файле сразу изменим значение порта на более безопасное. Лучше всего устанавливать значения из динамического диапазона портов (49152 — 65535), при этом использовать набор отличных друг от друга цифр для дополнительной безопасности. Например, отредактируем значение порта на 49532. Для этого раскомментируем соответствующую строку в файле и изменим значения порта, как показано на картинке ниже.

Кроме данной настройки, необходимо изменить режим аутентификации по паролю на более безопасный по ключу. Для этого раскомментируем соответствующую строку, значение которой должно быть “Yes”, как показано на картинке ниже.

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

Теперь запретим вход на сервер под суперпользователем. Для этого также изменим значение соответствующей строки, как показано на рисунке ниже.

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

  • UseDNS – отвечает за проверку соответствия имени хоста с его IP -адресом. Значение “Yes” включает этот параметр.
  • PermitEmptyPasswords – данный параметр запрещает использовать пустые пароли при аутентификации, если в качестве значения указано “No”.
  • MaxAuthTries – ограничение на количество неудачных попыток подключения к серверу в рамках одного сеанса связи. В качестве значения передается число.
  • AllowUsers и AllowGroups – данные параметры отвечает за список пользователей и групп соответственно, которым разрешен доступ к серверу.
# AllowUsers Пользователь1, пользователь2, пользователь3
# AllowGroups Группа1, группа2, группа3
  • Login GraceTime – параметр, отвечающий за время, предоставляемое для успешной авторизации. Рекомендуем уменьшить значение данного параметра в 4 раза.
  • ClientAliveInterval – ограничение на время бездействия пользователя. При выходе за указанную границу происходит отключение пользователя.

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

sudo systemctl restart ssh

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

ssh -p номер_порта имя_пользователя@IP_адрес
ssh -p номер_порта имя_пользователя@домен

Заключение

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

Источник

Оцените статью
Adblock
detector