ssh (Secure Shell) — во-первых это протокол для подключения к удалённым устройствам по защищённому каналу.
Во-вторых это UNIX утилита для подключения к удалённым устройствам. Вот о ней-то и пойдёт речь.
Чаще всего для подключения к удалённым устройствам вы будете использовать ssh в следующем виде:
ssh username@remote.host.ru
Где «username» это имя пользователя на удалённом устройстве, а «remote.host.ru» это доменное имя или IP адрес удалённого устройства.
Ах да 🙂 Удалённое устройство, это не то, которое кто-то зачем-то удалил, а просто устройство, подключенное к сети. Например, сервер или компьютер в другом городе, иногда мобильный телефон.
Чаще всего, удалённым устройством будет сервер/компьютер/маршрутизатор работающий под управлением операционной системы из семейства Unix (например, Linux, MacOS, FreeBSD).
По-умолчанию служба ssh работает на 22 порту, однако, в зависимости от настроек может быть запущена и на другом порту. В этом случае в строке подключения нужно указать порт, к которому нужно подключиться. Порт указывается с ключом «-p». Например, если ssh работает на порту 2222, то строка подключения будет выглядеть так:
ssh -p 2222 username@remote.host.ru
Если вы подключаетесь у удалённому устройству впервые, то вам будет предложено принять отпечаток ключа. Что-то вроде этого:
ED25519 key fingerprint is SHA256:Z6Zyf+dc8RqUObZGEbwxcWefzY7P6R+JzFlXf0u/CBM. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Отвечайте (пишите) yes. После этого будет предложено ввести пароль. Пока вы вводите пароль, будет казаться, что ничего не происходит. На самом деле, просто в целях безопасности ввод пароля не отображается.
Авторизация по ключу.
В том случае, когда приходится часто работать с удалённым устройством по ssh имеет смысл авторизовываться не по паролю, а по электронному ключу.
В этом случае соединение по ssh будет защищено надёжнее.
Создадим ключ:
ssh-keygen
Утилита сгенерирует ключ, спросит, куда его сохранить (можно нажать Enter для значения по-умолчанию) и запросит пароль для защиты самого ключа. В большинстве случаем можно нажать Enter, тогда ключ не будет защищён паролем. Однако, если требуется защита ключа (ключ будет доступен кому-то кроме вас, будет отправляться по почте, переноситься на флешке и проч.) тогда вводите пароль.
Теперь нужно скопировать открытую часть ключа на удалённое устройство, чтобы оно могло вас авторизовать (по примеру выше):
ssh-copy-id -p 2222 username@remote.host.ru
Введите пароль для своей учётной записи на удалённом устройстве. Если всё прошло успешно, то теперь вы сможете подключаться к удалённому хосту без ввода пароля.
Как подключаться по SSH из Microsoft Windows?
Если вам не повезло и вы всё ещё работаете в ОС Windows, не отчаивайтесь, из Windows тоже можно подключаться к удалённым устройствам по протоколу ssh.
Поздние сборки Windows 10 и 11 имеют встроенный ssh клиент, т.е. из Windows можно ничего дополнительно не устанавливая подключатся к удалённым устройствам по протоколу ssh.
Для этого запустите командную строку, а дальше всё как в Linux:
ssh username@remote.host.ru
при необходимости с ключом «-p» можете указать порт, если на удалённом устройстве ssh сервер работает не на стандартном порту. Например:
ssh -p 2222 username@remote.host.ru
Также, можно воспользоваться сторонyим приложением для работы с SSH, Одним из наиболее популярных приложений является PuTTY. Скачать можно с официального сайта: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
В главном окне программы в поле «Host Name (or IP address)» введите IP-адрес или доменное имя сервера. Убедитесь, что порт указан правильно (по умолчанию 22). В разделе «Connection type» выберите «SSH». Если вы используете SSH-ключ, перейдите в раздел «Connection» -> «SSH» -> «Auth» и укажите путь к вашему приватному ключу в поле «Private key file for authentication». После этого вернитесь в раздел «Session» и, если вы планируете подключаться к этому серверу часто, сохраните настройки, введя имя профиля в поле «Saved Sessions» и нажав «Save».
Подключение к серверу
Нажмите кнопку «Open» для установки соединения. Если это ваш первый раз подключения к данному серверу, PuTTY может показать предупреждение о неизвестном отпечатке ключа сервера. Если вы уверены в подлинности сервера, нажмите «Yes». После этого откроется терминал, где вам нужно будет ввести имя пользователя и пароль (или просто пароль, если используется SSH-ключ). Если всё введено правильно, вы окажетесь в командной строке сервера. Теперь вы можете работать с сервером через SSH.