На Mac и в Linux SSH-клиент уже стоит из коробки - открывать ничего не нужно, кроме терминала. Показываем первое подключение к хиплету HIP по паролю, переход на вход по ключу ed25519, alias в ~/.ssh/config и что делать, если SSH вообще не отвечает.
Чтобы подключиться к серверу HIP по SSH с macOS и Linux, ставить ничего не нужно - клиент OpenSSH уже встроен в обе системы, весь путь укладывается в приложение «Терминал». Разница с Windows не в самом протоколе, а в мелочах: как выглядит первый запрос про отпечаток сервера, где на диске лежат ключи и какими штатными командами удобнее пользоваться. Ниже - где взять IP и пароль хиплета, как войти первый раз, как перейти на вход по ключу ed25519 и что означают самые частые ошибки подключения.
Коротко. IP-адрес и пароль root - на вкладке «Информация» вашего хиплета в my.hip.hosting, в блоке «Подключение». В терминале:
ssh root@IP, на запрос про отпечаток сервера ответьтеyes, введите пароль. Дальше создайте ключ -ssh-keygen -t ed25519- и скопируйте его на сервер командойssh-copy-id root@IP. Пропишите сервер в~/.ssh/config, чтобы подключаться командойssh myhiplet. Если SSH перестанет отвечать полностью, у HIP есть настоящая веб-консоль на вкладке «Консоль» - она работает в обход сети сервера и SSH ей не нужен вообще.
ssh -V - должно вывести что-то вроде OpenSSH_9.6p1.Если хиплета ещё нет - начните с инструкции по созданию сервера в панели HIP. Если подключаетесь с компьютера на Windows, а не с Mac или Linux, вам нужна другая статья - про SSH из Windows через PuTTY.
Откройте нужный сервер в my.hip.hosting - попадёте на вкладку «Информация», она открывается по умолчанию. Ниже характеристик сервера и статуса - блок «Подключение»: в нём указан IP-адрес и пароль root. Пароль скрыт размытием, рядом с ним - иконка копирования; клик по самому полю раскрывает пароль текстом, если нужно посмотреть его глазами, а не просто скопировать.
Там же, на вкладке «Информация», есть кнопка «Сменить пароль» - пригодится, если пароль забыт или его нужно обновить отдельно от смены через passwd внутри самого сервера (шаг ниже). Оба способа меняют один и тот же пароль root, просто с разных сторон - панель меняет его напрямую, passwd - изнутри уже открытой сессии.
Откройте терминал: на macOS - Программы -> Утилиты -> Терминал или Spotlight по слову terminal, на Linux - «Терминал» в меню приложений. Введите команду, подставив свой IP:
root - пользователь, под которым HIP создаёт новый хиплет;45.14.247.252 - IP-адрес сервера из блока «Подключение».При первом обращении к новому серверу клиент покажет что-то вроде:
The authenticity of host '45.14.247.252 (45.14.247.252)' can't be established.
ED25519 key fingerprint is SHA256:aB3kZ...q9M.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Это не ошибка и не признак взлома. Отпечаток (fingerprint) - короткий цифровой слепок ключа сервера. Ваш клиент видит этот сервер впервые и спрашивает разрешения запомнить ключ - если он потом внезапно поменяется, SSH остановит вас предупреждением, а не тихо пустит дальше.
Сверить отпечаток по-настоящему можно только по каналу, независимому от SSH. В панели my.hip.hosting отдельного поля с отпечатком сервера нет ни на вкладке «Информация», ни на вкладке «Консоль» - хотя консоль подключается к серверу напрямую через гипервизор, она показывает экран входа, а не техническую информацию о SSH-ключе. Так что честная версия - обычный trust-on-first-use: на только что созданном сервере, к которому ещё никто не успел подключиться, риск подмены ключа минимален. Наберите yes целиком, не y, и нажмите Enter.
Дальше клиент попросит пароль:
[email protected]'s password:
Введите пароль из блока «Подключение». Символы при вводе не отображаются вообще - ни точек, ни звёздочек, это нормальное поведение терминала. Пароль можно вставить: Cmd+V на macOS, Ctrl+Shift+V в большинстве терминалов Linux.
Что вы должны увидеть. Приглашение сменится на что-то вроде root@hiplet-117445:~# - это уже командная строка сервера, вы внутри.
Пароль из панели вы только что вводили в терминал открытым текстом, так что имеет смысл сразу поставить свой:
passwd
Команда попросит новый пароль дважды, без отображения на экране. Берите длинный, от 16 символов.
Что вы должны увидеть: passwd: password updated successfully. Учтите: панель my.hip.hosting об этой смене не узнает - в блоке «Подключение» продолжит показывать старый пароль, если вы не обновите его отдельно через «Сменить пароль». Это не страшно для SSH, но пригодится запомнить для раздела про веб-консоль ниже.
Пароль можно подобрать перебором, и вводить его вручную каждый раз утомительно. Ключ решает обе проблемы разом. Пара ключей - это два файла: приватный остаётся только на вашем компьютере, публичный кладётся на сервер, и сервер пускает того, кто докажет владение приватным ключом, ничего не передавая по сети напрямую.
Вход по паролю | Вход по ключу | |
|---|---|---|
Настройка | не нужна, пароль уже выдан | один раз создать ключ и скопировать на сервер |
Каждое подключение | вводите пароль вручную | ничего не вводите (или только passphrase от файла ключа) |
Устойчивость к перебору | пароль реально подобрать автоматическим сканером | ключ ed25519 подобрать на практике нельзя |
Когда использовать | только для самого первого входа | везде дальше - и как основной способ входа |
Создайте пару ключей. Команда выполняется на вашем компьютере, не на сервере:
ssh-keygen -t ed25519 -C "kate@macbook"
-t ed25519 - тип ключа: современный, короткий, быстрый, разумный выбор по умолчанию;-C "kate@macbook" - метка-комментарий, чтобы потом на сервере было видно, чей это ключ.На вопрос про расположение файла нажмите Enter - оставит ~/.ssh/id_ed25519. На вопрос про passphrase решайте сами: пустая строка удобнее, отдельный пароль на файл ключа полезнее, если ноутбук могут украсть.
Что вы должны увидеть: в каталоге ~/.ssh/ появились два новых файла - id_ed25519 и id_ed25519.pub.
Скопируйте публичный ключ на сервер - готовая команда сама создаст каталог ~/.ssh на сервере и допишет ключ в нужный файл (пароль спросит последний раз):
ssh-copy-id [email protected]
Если ssh-copy-id в системе нет - иногда так бывает на macOS без Homebrew, - сделайте то же самое вручную одной строкой:
cat ~/.ssh/id_ed25519.pub | ssh [email protected] 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'
Команда читает ваш публичный ключ, передаёт его на сервер по уже работающему паролю и дописывает в authorized_keys, заодно выставляя нужные права.
Проверка, прежде чем идти дальше: выполните ssh [email protected] ещё раз. Сервер должен пустить без пароля (или спросить только passphrase от файла ключа, если вы её задавали). Не переходите к следующему шагу, пока это не сработало - иначе рискуете остаться совсем без доступа.
Как только вход по ключу подтверждён, есть смысл выключить вход по паролю в sshd совсем. Причина не абстрактная: любой сервер с белым IP довольно быстро попадает в поле зрения автоматических сканеров, которые перебирают пароли для root и других частых имён пользователей по всему диапазону адресов интернета - это фоновый шум сети, а не персональная атака на вас, но пароль всё равно остаётся угадываемым, а ключ ed25519 - нет. Подробный разбор правки sshd_config, перезапуска службы и проверки, что вы не заблокировали себя, - в статье Защита свежего VPS: первичная настройка сервера Ubuntu за 10 минут.
Держите в голове одну вещь про HIP отдельно: даже если вы полностью отключите пароль в sshd, пароль root как таковой на сервере продолжает существовать и работать - просто не для SSH. Веб-консоль HIP на вкладке «Консоль» показывает системный вход в обход sshd - по логике работы Linux-логина через PAM консоль должна по-прежнему принимать именно этот пароль, но именно эту комбинацию мы намеренно не проверяли вживую (не хотели рвать себе SSH-доступ к рабочему серверу), так что это архитектурный вывод, а не прямой тест. Так что не удаляйте и не забывайте пароль root окончательно, даже перейдя на ключи - он остаётся вашим запасным выходом на случай, если что-то в самом SSH сломается.
Набирать ssh [email protected] каждый раз - лишняя работа. Опишите сервер один раз в файле ~/.ssh/config на своём компьютере (если файла нет - создайте):
Host myhiplet
HostName 45.14.247.252
User root
IdentityFile ~/.ssh/id_ed25519
Host myhiplet - короткое имя, которое вы придумываете сами;HostName - настоящий IP-адрес сервера;User - имя пользователя для входа;IdentityFile - какой приватный ключ использовать именно для этого сервера.Права на файл: chmod 600 ~/.ssh/config. Теперь всё подключение сводится к:
ssh myhiplet
Тот же алиас понимают scp и rsync, так что копировать файлы на сервер и обратно можно так же коротко. Серверов в файле может быть сколько угодно, каждый своим блоком Host.
Сообщение | Что значит | Что делать |
|---|---|---|
| Сервер не принял ключ, пароль не предлагается - вход по паролю уже отключён | Проверить, попал ли публичный ключ в |
| Не подошёл ни ключ, ни пароль | Сверить пароль в панели my.hip.hosting; если пароль тоже не подходит - сбросить его кнопкой на вкладке «Информация» |
| Сервер отвечает на этом IP, но порт SSH закрыт - служба | Зайти через веб-консоль и проверить |
| Пакеты вообще не доходят - неверный IP, сервер выключен или трафик режет внешний firewall | Проверить статус хиплета и IP на вкладке «Информация», при необходимости включить сервер на вкладке «Управление» |
Первые два случая чинятся, пока у вас есть хоть какой-то способ попасть внутрь сервера - паролем или ключом. Хуже, когда сломано всё сразу: неверно правленный sshd_config, случайно закрытый в ufw порт 22, упавший сетевой интерфейс. В этой ситуации у HIP есть реальный запасной путь - вкладка «Консоль» в my.hip.hosting. Она подключается к серверу напрямую через гипервизор, в обход сети внутри самой машины, и пускает по паролю root независимо от того, что творится с sshd или firewall. Подробный разбор, как через неё найти и починить конкретную поломку, - в статье Веб-консоль HIP: как зайти на сервер, если SSH не работает.
Откройте «Терминал» (Программы -> Утилиты, либо Spotlight по слову terminal) и введите ssh root@IP, где IP взят из блока «Подключение» на вкладке «Информация» вашего хиплета. SSH-клиент в macOS встроен, ставить ничего не нужно.
Скопируйте публичный ключ вручную одной строкой: cat ~/.ssh/id_ed25519.pub | ssh root@IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'. Результат тот же, просто без отдельной утилиты.
Сервер не принял ваш ключ и не предлагает ввести пароль вместо него - значит вход по паролю уже отключён. Если ключ никогда не работал, зайдите через веб-консоль HIP и проверьте, попал ли публичный ключ в ~/.ssh/authorized_keys и правильные ли на нём права.
Настройте вход по ключу: ssh-keygen -t ed25519 на своём компьютере, затем ssh-copy-id root@IP. После этого сервер пускает по ключу без пароля - если только вы сами не поставили passphrase на файл ключа.
Да, но только после того, как вход по ключу проверен и реально работает. Пароль можно подобрать автоматическим перебором, ключ ed25519 - на практике нельзя. Подробности - в статье про защиту свежего VPS.
Сначала проверьте статус сервера в панели - возможно, дело не в SSH, а в том, что сервер выключен. Если сервер работает, а SSH не пускает из-за сломанного sshd, firewall или потерянного ключа, откройте вкладку «Консоль» в my.hip.hosting - она подключается напрямую через гипервизор и работает по паролю, даже когда SSH полностью недоступен.
ssh root@IP, отпечаток сервера подтверждаете словом yes по принципу trust-on-first-use: панель HIP отдельного поля с отпечатком для сверки не показывает.ssh-keygen -t ed25519 и ssh-copy-id; проверяйте, что ключ реально работает, прежде чем отключать пароль.~/.ssh/config с блоком Host сокращает вход до команды ssh myhiplet.