Подключение по SSH: с любой ОС, по ключу и безопасно
SSH — основной способ управлять сервером в консоли. Разбираем, как подключиться с Windows, macOS и Linux, перейти с пароля на ключи, сменить порт для снижения шума в логах и что делать с самыми частыми ошибками подключения.
Как подключиться с разных систем
| Система | Клиент | Команда/действие |
|---|---|---|
| Linux/macOS | Встроенный ssh | ssh root@IP_адрес |
| Windows 10/11 | Встроенный ssh или PowerShell | ssh root@IP_адрес |
| Windows (GUI) | PuTTY | Указать IP, порт 22, Open |
| Мобильно | Termius и аналоги | Добавить хост, ключ, connect |
Вход по ключу вместо пароля
Ключи безопаснее и удобнее паролей. Схема: генерируете пару ключей, кладёте публичный ключ на сервер, приватный храните у себя. После этого можно отключить парольный вход и резко снизить риск подбора.
- Сгенерируйте ключ: ssh-keygen -t ed25519 на своём компьютере.
- Скопируйте публичный ключ на сервер (ssh-copy-id или вручную в ~/.ssh/authorized_keys).
- Проверьте вход по ключу, не закрывая текущую сессию.
- Только убедившись, что ключ работает, отключите PasswordAuthentication.
- Не теряйте приватный ключ — без него вы потеряете доступ.
Смена порта и частые ошибки
Смена стандартного порта 22 не панацея, но убирает большую часть автоматического перебора. После смены порта не забудьте открыть его в фаерволе. Разбор типовых ошибок:
| Ошибка | Вероятная причина | Что делать |
|---|---|---|
| Connection refused | SSH не запущен или закрыт порт | Проверить сервис sshd и фаервол |
| Connection timed out | Сеть/фаервол блокирует, сервер недоступен | См. диагностику |
| Permission denied | Неверный пароль/ключ или логин | Проверить логин, права ~/.ssh (700/600) |
| Host key changed | Сменился сервер/переустановка | Удалить старую запись known_hosts |
Частые вопросы
Как подключиться к серверу по SSH из Windows?
В Windows 10/11 есть встроенный клиент: откройте PowerShell и выполните ssh root@IP_адрес. Либо используйте PuTTY, указав IP и порт. Пароль или ключ выдаются при создании сервера.
SSH выдаёт Connection timed out — что делать?
Это обычно сетевая блокировка или недоступность сервера, а не ошибка пароля. Проверьте, отвечает ли сервер (ping), открыт ли порт, и загляните в раздел диагностики.
Нужно ли менять стандартный порт SSH?
Не обязательно, но это уменьшает автоматический перебор в логах. Важнее перейти на ключи и отключить парольный вход — это даёт основной прирост безопасности.