SSH сервер.

Обсуждение, отзывы, пожелания к статьям в разделе Сервер
Только администрация может создавать темы.
Сообщения могут писать все посетители.
Ответить
Admin
Администратор
Администратор
Сообщения: 18
Зарегистрирован: 25 апр 2022, 16:14

SSH сервер.

Сообщение Admin »

Обсуждение статьи SSH сервер.

Установка, настройка, безопасность SSH

Что такое SSH зачем нужно

SSH — это протокол прикладного уровня. SSH-сервер обычно прослушивает соединения на TCP-порту 22. Сервер SSH обеспечивает безопасную связь для удаленного управления сервером.

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

После установки сервера Debian необходимо наладить с ним удаленное соединение для управления им. Производить установку необходимо с правами суперпользователя root , необходимо выполнить команду su и ввести пароль суперпользователя или через sudo ,каждый раз вводя пароль суперпользователя, но можно немного отредактировать файл sudoers чтобы не вводить каждый раз пароль. как это сделать можно прочитать тут. Установка сервера SSH производим с правами суперпользователя.

Проверить установлен ли SSH.

Код: Выделить всё

sudo systemctl status ssh
Если установлен увидим в терминале:

Код: Выделить всё

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-04-30 18:12:35 MSK; 24min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1677 (sshd)
    Tasks: 1 (limit: 2359)
   Memory: 3.6M
   CGroup: /system.slice/ssh.service
           └─1677 /usr/sbin/sshd -D
Установка SSH

Код: Выделить всё

apt update
apt upgrade -y
apt install ssh -y
Или, что для дебиан одно и то же все равно устанавливается OpenSSH, такой командой:

Код: Выделить всё

apt update
apt upgrade -y
apt install openssh-server -y
Добавить SSH в автозагрузку

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

Код: Выделить всё

sudo systemctl enable ssh
Как узнать IP адрес сервера

Локальный

Теперь у нас есть удаленный доступ к серверу, можно от него отойти и с удобствами продолжать дальнейшие настройки. Не забыв узнать его ip-адрес в локальной сети:

Код: Выделить всё

ip addr show | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*'
Или командой

Код: Выделить всё

hostname -I
Внешний

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

Код: Выделить всё

wget -q -O - ifconfig.me/ip
Подключение к удаленному серверу по SSH в Windows 10

Если OpenSSH не включен, то нужно сделать некоторые телодвижения

В поиске набрать: Параметры - Открыть - Приложения - Дополнительные параметры в строке поиска установленных компонентов набрать Клиент ssh , если его нет, то нажать +Добавить в строке поиска набрать Клиент ssh поставить галку и нажать Установить. После установки обязательно перезагрузить виндовс.

По паролю

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

ssh -p порт имя_пользователя@айпи_адрес_сервера порт можно не указывать, если в целях безопасности он не изменен

Код: Выделить всё

ssh -p 22 wildserver@192.168.0.15
При первом подключении будет предупреждение с которым соглашаемся написав yes

Код: Выделить всё

The authenticity of host '192.168.0.15 (192.168.0.15)' can't be established.
ECDSA key fingerprint is SHA256:XVVCjPfdEKCj+vLyyIipy1ViGG9ienBkzpROFRtcufU.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Попросят ввести пароль пользователя от имени которого подключаемся, введя его попадаем в командную строку сервера.

По ключу

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

Открываем cmd вводим:

Код: Выделить всё

ssh-keygen
Поступит предложение создать папку .ssh , если ее нет, то появится. В этой папке создадутся два файла с именами - id_rsa и id_rsa.pub Соглашаемся нажав ввод.

Код: Выделить всё

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\user/.ssh/id_rsa):
Попросят ввести пароль для использования ключа. Это на тот случай, если вашим компьютером может воспользоваться злоумышленник. Если пароль не нужен оставляем поле пустым, нажимаем ввод два раза. На экране увидим пути к двум созданным файлам:

Код: Выделить всё

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\user/.ssh/id_rsa.
Your public key has been saved in C:\Users\user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:RIjWELs/yTOtfWEmnOIGNP6iIhixG/qazVeOKpb70g0 user\user@User
The key's randomart image is:
+---[RSA 3072]----+
|    o= ..        |
|    o.o.         |
|   ..   .        |
|.   o. .         |
| o o.. .S.       |
|+  Eoooo+ +      |
|o+o oBB..+ .     |
|BB .+.=*  .      |
|=*X= o. ..       |
+----[SHA256]-----+
Необходимо передать публичный ключ на сервер. В этом же окне cmd создадим каталог и скопируем туда ключ, путь и адрес сервера с пользователем указываем свои.:

Код: Выделить всё

ssh wildserver@192.168.0.15 mkdir ~/.ssh
scp C:\Users\user/.ssh/id_rsa.pub wildserver@192.168.0.15:~/.ssh/
Заходим на сервер по паролю, чтобы дописать в файл authorized_keys новый ключ. Так можно дать доступ по ключу нескольким компьютерам дописав их ключи в этот файл.

Код: Выделить всё

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Выходим с сервера exit и вновь пробуем подключится по SSH, в этот раз пароль не будут спрашивать

Настройка безопасности SSH

Отключение входа по паролю

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

Код: Выделить всё

sudo nano /etc/ssh/sshd_config
Внутри файла найдите PasswordAuthentication нажать кнопки Cntr+W для поиска в редакторе и ввести искомое слово . Если он закомментирован, раскомментируйте. Установите его на no чтобы отключить вход с паролем. Для кучи не лишним будет ChallengeResponseAuthentication запретить , если еще не стоит no . Нажать Cntr+O Enter сохранить файл Cntr+X выйти.

Замена стандартного порта доступа к SSH

В файле sshd_config находим #Port 22 раскомментируем и вводим значение желаемого порта.

После любых изменений перезапустить сервис SSH

Код: Выделить всё

sudo systemctl restart ssh
Ошибка доступа по SSH в windows 10

Бывает так, что подключаясь к серверу вылезает такая ошибка:

Код: Выделить всё

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:HHD3xjYV/RdL7RvEnUe+CyATZip4nprz2aBSbj3K6gU.
Please contact your system administrator.
Это возможно, когда на этом же айпи адресе был другой сервер к которому подключались с этого же компьютераю. Испрвить довольно просто, но не просто было найти решение. В командной строке cmd виндовс набираем команду: ssh-keygen -R айпи_адрес_сервера

Код: Выделить всё

ssh-keygen -R 192.168.0.15
Аватара пользователя
cvCOK
Зарегистрированные пользователи
Зарегистрированные пользователи
Сообщения: 75
Зарегистрирован: 19 фев 2024, 10:01

Гостиницы

Сообщение cvCOK »

Аватара пользователя
cvCOK
Зарегистрированные пользователи
Зарегистрированные пользователи
Сообщения: 75
Зарегистрирован: 19 фев 2024, 10:01

Рестораны и кафе

Сообщение cvCOK »

Аватара пользователя
cvCOK
Зарегистрированные пользователи
Зарегистрированные пользователи
Сообщения: 75
Зарегистрирован: 19 фев 2024, 10:01

Круизы

Сообщение cvCOK »

Ответить