Разбираемся, как подключиться по SSH в Linux, MacOS и Windows. Рассмотрим два способа: с использованием пароля и без него (при помощи SSH-ключей).
Что нужно для подключения к серверу по SSH
Для подключения по SSH понадобятся такие данные:
- имя пользователя и пароль;
- IP-адрес или хостнейм сервера;
- порт (по умолчанию 22, у нас на виртуальном хостинге — 21098, у других провайдеров может быть другой).
Обычно эту информацию можно найти в письме об активации хостинга.
Подключение по SSH в панели управления хостингом
Этот самый простой и ленивый способ, потому что для него не нужно даже знать детали подключения к серверу. Он подойдёт, если доступ по SSH нужен редко или понадобился внезапно, а вы не помните пароль.
Приложение для SSH-доступа к серверу есть в большинстве панелей. У себя на виртуальном хостинге мы используем cPanel, попасть в неё можно из личного кабинета. Там на главной странице в секции «Расширенный» есть приложение «Terminal».
Подключение по SSH в Linux или MacOS
Это можно сделать во встроенном в систему приложении «Терминал» или установить сторонний SSH-клиент. Несколько примеров:
Для подключения используйте такую команду:
ssh имя_пользователя@адрес_сервера -p порт
Если вы впервые подключаетесь по SSH к этому серверу, программа скажет «я пока что не знаю этот сервер, вы точно хотите подключиться?». Введите yes и нажмите Enter.
Далее SSH-клиент попросит ввести пароль. Символы при введении пароля как правило не отображаются по соображениями безопасности.
После этого в командной строке изменится идентификатор пользователя. Это значит, что вас подключило.
Сообщение «Permission denied» или «Connection refused» означает, что подключиться не удалось. Возможно, вы неправильно ввели пароль или используете неправильный порт. Либо подключение по SSH запрещено в параметрах сервера.
Чтобы прервать SSH-подключение с сервером, используйте команду:
exit
Подключение по SSH в Windows
Раньше, чтобы подключиться к серверу через SSH в Windows, нужно было использовать SSH-клиент по типу PuTTy, Zoc, MobaXterm или Termius. Начиная с Windows 10, в системе есть встроенный набор программ OpenSSH (такой же как в Linux с MacOS).
В Windows 11 OpenSSH активирован по умолчанию, в Windows 10 может понадобиться активировать вручную. Это можно сделать в меню «Пуск», раздел «Параметры – Приложения», подраздел «Управление дополнительными компонентами».
По умолчанию OpenSSH в Windows не активирован. Чтобы активировать, откройте в меню «Пуск», раздел «Параметры – Приложения», подраздел «Управление дополнительными компонентами».
Чтобы открыть консоль и подключиться к серверу по SSH, откройте приложение «Выполнить» (нажмите комбинацию клавиш «Win+R»), введите в строке команду cmd и нажмите Enter.
Откроется консоль, где можно будет подключиться к серверу по SSH таким же образом, как и в Linux:
ssh имя_пользователя@адрес_сервера -p порт
Введите yes, если консоль спрашивает «Are you sure you want to continue connecting (yes/no)?». Это добавит сервер в список тех, которым можно доверять.
Затем введите пароль от аккаунта. Помните, что в целях безопасности символы вводятся, но при этом не отображаются.
После этого вас должно подключить к серверу, что будет заметно по идентификатору пользователя (перед строкой для выполнения команд).
Чтобы отключиться от сервера, используйте такую команду (ну или закройте консоль):
exit
Подключение по SSH без пароля
Для этого используют аутентификацию с помощью SSH-ключей: приватного и публичного. Приватный ключ зашифровывает сообщения, хранится на вашем компьютере. Публичный ключ расшифровывает сообщения, хранится на сервере.
Когда вы пытаетесь подключиться через SSH с помощью ключей, сервер отправляет на ваш компьютер случайное сообщение, ваш компьютер зашифровывает его закрытым ключом и отправляет назад. Если у сервера получается расшифровать сообщение открытым ключом, авторизация считается успешной.
Чтобы всё это настроить, нужно: 1) сгенерировать SSH-ключи в консоли; 2) загрузить публичный ключ на удалённый сервер; 3) отключить авторизацию по паролю в настройках службы SSH.
Шаг 1. Сгенерируйте SSH-ключ
Это делается при помощи команды ssh-keygen:
ssh-keygen
Сначала утилита предложит ввести имя файла, в который нужно сохранить ключ (фраза «Enter file in which to save the key»). Чтобы всё работало, лучше оставить имя по умолчанию. Для этого просто нажмите Enter.
Затем утилита попросит придумать passphrase (кодовую фразу). Это пароль, который нужно будет вводить каждый раз при входе и выполнении некоторых действий. Если не хотите использовать passphrase, просто нажмите Enter.
Последний шаг — утилита попросит повторить passphrase. Если на предыдущем шаге ничего не вводили, снова нажмите Enter. После этого утилита завершит процесс и покажет случайную картинку из символов. Это значит, что всё готово.
Ключи хранятся в папке /home/username/.ssh/. По умолчанию секретный ключ называется id_rsa, а публичный — id_rsa.pub.
Шаг 2. Загрузите публичный ключ на сервер
Это можно сделать при помощи команды ssh-copy-id:
ssh-copy-id -p порт имя_пользователя@адрес_сервера
Понадобится ввести пароль от сервера, после чего утилита сама возьмёт содержимое файла id_rsa.pub и сохранит его по стандартному пути: ~/.ssh/authorized_keys. После этого можно будет подключаться по SSH без пароля.
Если вдруг не получается загрузить ключ при помощи команды выше, попробуйте сделать это в панели управления хостингом. Вот инструкция, как сделать это в cPanel:
Как пользоваться диспетчером файлов cPanel
Шаг 3. Отключите авторизацию по паролю
Не сработает на виртуальном хостинге (только на VPS или выделенном сервере).
Это дополнительно усилит безопасность системы, но в случае потери приватного ключа вы не сможете попасть на сервер. Придётся заходить на сервер через панель управления хостингом, либо обращаться в поддержку, чтобы сбросили настройки SSH.
Откройте конфигурационный файл службы SSH:
nano /etc/ssh/sshd_config
Найдите директиву PasswordAuthentication и установите её значение на «no». Затем сохраните изменения — сначала нажмите Ctrl+X, потом Y.
Перезапустите службу SSH:
sudo service ssh restart
Что дальше
Если вдруг есть замечания по статье, что-то не получается или есть дополнительные вопросы — оставьте комментарий чуть ниже, постараемся всем помочь.