SSH – это полностью зашифрованный протокол, который позволяет удаленный доступ к оболочке систем на основе UNIX (таким как Linux, BSD и MacOS). Кроме того, приложения протокола включают аутентификацию на основе ключей, передачу файлов и туннелирование трафика.
Как получить SSH-сервер?
Продукты Beehosting с доступом через SSH:
- Ограниченный доступ
- Веб-хостинг (для управления и редактирования веб-файлов и скриптов)
- Уровень 9
- Уровень 19
- Хранилище файлов (неподвижное, только для SCP и Rsync)
- Управляемые серверы (настройка и управление файлами)
- Веб-хостинг (для управления и редактирования веб-файлов и скриптов)
- Полный доступ к root
- Выделенные серверы root
- Облачные серверы
SSH-сервер уже включен в наши стандартные образы, доступные для автоматической установки. Или вы можете установить настраиваемый сервер, используя скрипт Installimage. После завершения установки вы можете подключиться к установленной системе через SSH.
Если вы установили операционную систему самостоятельно, вам, вероятно, нужно будет установить службу SSH после этого:
Операционная система | Установка |
---|---|
Debian/Ubuntu | apt install openssh-server |
В определенных случаях после установки вам может потребоваться вручную запустить службу. Если вы используете брандмауэр, вам нужно открыть порт 22 для SSH.
Как получить SSH-клиент?
- Для Linux, BSD и MacOS SSH обычно уже предустановлен или может быть легко установлен с помощью менеджера пакетов вашего дистрибутива.
- Поскольку Windows не поставляется с SSH-клиентом, мы рекомендуем загрузить инструмент
PuTTY
.
Операционная система | Установка |
---|---|
Debian/Ubuntu | apt install openssh-client |
Как использовать мой SSH-клиент для подключения к серверу?
- Если вы используете UNIX-систему (Linux/BSD/MacOS), следующая команда установит для вас SSH-соединение:
ssh <пользователь>@<IP_или_домен>
Введите соответствующее имя пользователя (обычно “root”) для
<пользователь>
и IP-адрес или домен вашего продукта для<IP_или_домен>
. - Если вы используете
PuTTY
, введите имя вашего DNS-сервера или его IP-адрес. При необходимости выберите SSH и порт 22, а затем нажмите “Открыть”. Затем вас попросят ввести ваше имя пользователя (обычноroot
) и пароль. После правильного ввода этих данных вы будете авторизованы в системе.
Как убедиться, что я подключаюсь к правильному серверу?
При первом подключении к серверу появится сообщение с просьбой проверить “отпечаток” сервера и подтвердить его. Отпечаток представляет собой сжатую версию открытого ключа сервера.
The authenticity of host 'example.com (10.0.0.1)' can't be established.
RSA key fingerprint is SHA256:DlxqI4BctJqAgyCfyExywbm9a7qdL7nqfMKgoQuGp5w..
Are you sure you want to continue connecting (yes/no)?
В зависимости от используемого вами ключа для подключения, вывод будет отличаться. Помимо RSA, типы ключей DSA, ECDSA и ED25519 также распространены. Однако DSA больше не следует использовать по умолчанию, начиная с OpenSSH 7.
С автоматической установкой отпечатки отображают и передают также по электронной почте.
Если во время повторного подключения появится следующее предупреждение, следует отнестись к нему серьезно:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ED25519 key sent by the remote host is
SHA256:DlxqI4BctJqAgyCfyExywbm9a7qdL7nqfMKgoQuGp5w.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /home/user/.ssh/known_hosts:1
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle
attacks.
Permission denied (publickey,password).
Это сообщение отображается, когда отпечаток системы-цели изменяется, например, при загрузке или установке новой операционной системы. В этом случае просто удалите неверный отпечаток локально с помощью этой команды:
ssh-keygen -R <IP_или_домен>
Если вы еще не подключались к другой операционной системе по тому же IP-адресу или домену, следует серьезно отнестись к предупреждению о возможной атаке “человек посередине”. Если вы считаете, что может произойти атака “человек посередине”, следует прервать соединение и заказать консоль KVM, чтобы проверить ситуацию внутри работающей системы.
Как создать новый ключ хоста SSH?
Все ключи хоста автоматически регенерируются с автоматической установкой через или с помощью скрипта Installimage. Чтобы заменить ключ в установленной системе, используйте ssh-keygen
. Вы можете найти список всех доступных ключей (ssh_host*) в /etc/ssh/
ls -l /etc/ssh
total 280
-rw-r--r-- 1 root root 242091 Oct 3 2014 moduli
Например, чтобы обновить ключ ED25519, введите следующую команду:
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N
Как переносить файлы через SSH?
SCP
Протокол для передачи файлов называется SCP. Он использует подключение SSH для полностью зашифрованной аутентификации и передачи данных. Следовательно, на противоположной системе также должен быть установлен SSH-сервер.
Вы можете использовать SCP с многими удаленными файловыми менеджерами, а также в оболочке Linux, BSD или MacOS. Просто используйте следующий синтаксис команды, чтобы начать передачу файла с вашей системы на другую или наоборот:
scp <исходный> <назначение>
Чтобы скопировать файл с Системы-A
на Систему-B
, находясь в Системе-A
:
scp /путь/к/файлу holu@Система-B:/путь/к/файлу-назначению
Чтобы скопировать файл с Системы-A
на Систему-B
, находясь в Системе-B
:
scp holu@Система-B:/путь/к/файлу /путь/к/файлу-назначению
Чтобы скопировать целый каталог рекурсивно (со всеми файлами и подкаталогами в нем), вам нужно добавить -rp
:
scp -rp holu@Система-B:/путь/к/папке/ /путь/к/папке-назначению/
SFTP
Протокол SFTP (Secure File Transfer Protocol) был разработан как альтернатива FTPS (TLS-зашифрованному FTP) и в отличие от него использует только одно соединение, которое обрабатывается зашифрованным подключением SSH. Поэтому, как и в случае с SCP, требуется SSH-сервер.
Вы можете использовать SFTP с многими удаленными файловыми менеджерами, а также в оболочке Linux, BSD или MacOS. В отличие от SCP, вам нужно сначала установить соединение:
sftp <пользователь>@<IP_или_домен>
После установки соединения вы увидите приглашение sftp
, и с его помощью вы можете взаимодействовать с удаленной машиной:
sftp holu@your_host.example.com
Connected to holu@your_host.example.com.
sftp>
Большинство команд SFTP аналогичны командам, которые вы бы использовали в оболочке Linux. Используя команды help
или ?
, вы можете получить список доступных команд:
sftp> help
Для получения дополнительной информации и примеров обратитесь к документации по SFTP.
Как использовать SSH для создания туннеля?
Возможность туннелирования протокола SSH, которую многие используют для шифрования потока данных (как с SCP и SFTP), также полезна для создания защищенного VPN-подобного соединения между двумя системами. Для получения дополнительной информации обратитесь к документации по туннелированию SSH.