SSH (Secure Shell) — это стандартный протокол для удалённого управления Linux-серверами. С его помощью можно подключиться к VPS или выделенному серверу, выполнять команды, устанавливать программное обеспечение, изменять настройки системы и управлять файлами без физического доступа к серверу.
SSH используется практически всеми администраторами серверов, так как позволяет безопасно работать с сервером через зашифрованное соединение.
Для подключения необходимо знать:
-
IP-адрес сервера;
-
имя пользователя;
-
пароль или SSH-ключ;
-
SSH-порт.
По умолчанию SSH использует порт:
22
Если на сервере настроен другой порт, необходимо использовать именно его.
Что необходимо подготовить перед подключением
Перед началом подключения убедитесь, что у вас есть следующие данные:
IP-адрес сервера
Например:
203.0.113.10
Имя пользователя
Чаще всего используется:
root
или отдельный пользователь с правами sudo.
Пароль или SSH-ключ
Для входа можно использовать:
-
пароль пользователя;
-
приватный SSH-ключ.
Для постоянного управления сервером рекомендуется использовать SSH-ключи, так как они значительно безопаснее обычных паролей.
SSH-порт
Стандартный порт:
22
Если используется другой порт, он должен быть указан при подключении.
Например:
2222
Как подключиться к серверу через Windows
В современных версиях Windows уже есть встроенный SSH-клиент, поэтому устанавливать дополнительные программы обычно не требуется.
Откройте:
-
Windows Terminal;
-
PowerShell;
-
Командную строку (CMD).
Введите команду:
ssh root@IP_адрес_сервера
Например:
ssh root@203.0.113.10
Если SSH работает на другом порту, используйте параметр -p:
ssh -p 2222 root@203.0.113.10
При первом подключении может появиться сообщение:
Are you sure you want to continue connecting (yes/no)?
Это стандартная проверка SSH. Если вы подключаетесь к своему серверу, введите:
yes
После этого появится запрос пароля:
root@203.0.113.10's password:
Введите пароль пользователя.
Обратите внимание: при вводе пароля символы на экране не отображаются. Это нормальное поведение SSH.
После успешной авторизации вы получите доступ к командной строке сервера.
Как подключиться к серверу с Linux
В Linux SSH-клиент обычно уже установлен.
Откройте терминал и выполните:
ssh root@203.0.113.10
Если используется нестандартный порт:
ssh -p 2222 root@203.0.113.10
Если команда ssh отсутствует, установите клиент.
Ubuntu и Debian:
sudo apt update
sudo apt install openssh-client
AlmaLinux, Rocky Linux и другие RHEL-системы:
sudo dnf install openssh-clients
Как подключиться к серверу с macOS
В macOS SSH-клиент также уже установлен.
Откройте приложение Terminal и выполните:
ssh root@203.0.113.10
Для подключения через другой порт:
ssh -p 2222 root@203.0.113.10
При первом подключении подтвердите ключ сервера, если IP-адрес принадлежит вашему серверу.
Подключение к серверу через SSH-ключ
SSH-ключи позволяют входить на сервер без использования пароля.
SSH-ключ состоит из двух частей:
-
публичный ключ — размещается на сервере;
-
приватный ключ — хранится только у владельца.
Никому не передавайте приватный ключ.
Если ключ уже установлен на сервере, подключение выполняется обычной командой:
ssh root@203.0.113.10
Если ключ находится в другом месте, используйте параметр -i:
ssh -i ~/.ssh/server_key root@203.0.113.10
Пример для Windows:
ssh -i C:\Users\User\.ssh\server_key root@203.0.113.10
Как проверить работу SSH на сервере
Если есть доступ к серверу через консоль панели управления или KVM, можно проверить состояние SSH-службы.
Ubuntu и Debian:
systemctl status ssh
AlmaLinux, Rocky Linux:
systemctl status sshd
Если служба остановлена, запустите её:
systemctl start ssh
или:
systemctl start sshd
Чтобы SSH автоматически запускался после перезагрузки:
systemctl enable ssh
Как узнать текущий SSH-порт
Чтобы посмотреть, какой порт используется SSH, выполните:
grep Port /etc/ssh/sshd_config
Если используется стандартный порт, будет указано:
Port 22
Если используется другой порт:
Port 2222
подключаться нужно так:
ssh -p 2222 root@203.0.113.10
Проверка доступности SSH-порта
Если подключиться не получается, сначала проверьте, доступен ли порт.
С другого компьютера можно использовать команду:
nc -zv 203.0.113.10 22
Пример проверки другого порта:
nc -zv 203.0.113.10 2222
Также можно использовать Nmap:
nmap -p 22 203.0.113.10
Если порт открыт, результат будет примерно таким:
22/tcp open ssh
Частые ошибки при подключении
Connection refused
Ошибка:
ssh: connect to host server port 22: Connection refused
Обычно означает, что SSH-служба не запущена или работает на другом порту.
Проверьте:
systemctl status ssh
или:
systemctl status sshd
Также проверьте настройки SSH-порта.
Connection timed out
Ошибка:
Connection timed out
Чаще всего проблема связана с:
-
заблокированным портом в firewall;
-
неправильным IP-адресом;
-
недоступностью сервера;
-
сетевыми ограничениями провайдера.
Проверьте:
-
настройки firewall;
-
открыт ли SSH-порт;
-
работает ли сервер.
Permission denied
Ошибка:
Permission denied
Причины:
-
неправильный пароль;
-
неверный SSH-ключ;
-
запрещён вход пользователя;
-
отключён вход root.
Для диагностики используйте:
ssh -v root@203.0.113.10
Команда покажет подробный процесс авторизации.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
Это сообщение появляется, если изменился SSH fingerprint сервера.
Чаще всего такое происходит после:
-
переустановки операционной системы;
-
замены SSH-ключей сервера;
-
переноса сервера.
Перед удалением записи убедитесь, что сервер действительно ваш.
Удалить старый fingerprint можно командой:
ssh-keygen -R 203.0.113.10
После этого попробуйте подключиться снова.
Как завершить SSH-соединение
Чтобы выйти из SSH-сессии, выполните:
exit
Также можно использовать сочетание клавиш:
Ctrl + D
Рекомендации по безопасности SSH
После настройки сервера рекомендуется выполнить несколько действий для защиты SSH:
-
использовать SSH-ключи вместо паролей;
-
отключить вход root через SSH;
-
использовать отдельного пользователя с правами sudo;
-
изменить стандартный SSH-порт;
-
ограничить доступ через firewall;
-
установить Fail2Ban;
-
регулярно проверять логи входов.
Проверить последние подключения можно командой:
last
Логи SSH:
Ubuntu/Debian:
sudo journalctl -u ssh
RHEL-системы:
sudo journalctl -u sshd
Полезные SSH-команды
Подключение к серверу:
ssh user@SERVER_IP
Подключение через другой порт:
ssh -p PORT user@SERVER_IP
Подключение с SSH-ключом:
ssh -i PRIVATE_KEY user@SERVER_IP
Подключение с подробным выводом:
ssh -v user@SERVER_IP
Удаление старого ключа сервера:
ssh-keygen -R SERVER_IP
Выход из SSH:
exit