Установка, настройка, безопасность 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
Код: Выделить всё
apt update
apt upgrade -y
apt install ssh -y
Код: Выделить всё
apt update
apt upgrade -y
apt install openssh-server -y
Чтобы каждый раз после перезагрузки или включения сервера не надо было активировать SSH нужно включить его в автозагрузку
Код: Выделить всё
sudo systemctl enable ssh
Локальный
Теперь у нас есть удаленный доступ к серверу, можно от него отойти и с удобствами продолжать дальнейшие настройки. Не забыв узнать его 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
Если OpenSSH не включен, то нужно сделать некоторые телодвижения
В поиске набрать: Параметры - Открыть - Приложения - Дополнительные параметры в строке поиска установленных компонентов набрать Клиент ssh , если его нет, то нажать +Добавить в строке поиска набрать Клиент ssh поставить галку и нажать Установить. После установки обязательно перезагрузить виндовс.
По паролю
Все что нужно для связи с сервером установлено, его адрес известен, теперь подключаемся, первое соединение будет по паролю. Открываем cmd вводим:
ssh -p порт имя_пользователя@айпи_адрес_сервера порт можно не указывать, если в целях безопасности он не изменен
Код: Выделить всё
ssh -p 22 wildserver@192.168.0.15
Код: Выделить всё
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
Код: Выделить всё
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]-----+
Код: Выделить всё
ssh wildserver@192.168.0.15 mkdir ~/.ssh
scp C:\Users\user/.ssh/id_rsa.pub wildserver@192.168.0.15:~/.ssh/
Код: Выделить всё
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Настройка безопасности SSH
Отключение входа по паролю
Когда удачно настроен вход по ключу можно отключить вход по паролю это предотвратит вход любого пользователя с помощью SSH с использованием пароля. Входим на сервер и редактируем конфиг SSH
Код: Выделить всё
sudo nano /etc/ssh/sshd_config
Замена стандартного порта доступа к SSH
В файле sshd_config находим #Port 22 раскомментируем и вводим значение желаемого порта.
После любых изменений перезапустить сервис SSH
Код: Выделить всё
sudo systemctl restart ssh
Бывает так, что подключаясь к серверу вылезает такая ошибка:
Код: Выделить всё
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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.
Код: Выделить всё
ssh-keygen -R 192.168.0.15