Менеджер подключений ssh linux

Обновлено: 03.07.2024

Оригинал: SSH client and server
Автор: Paul Cobbaut
Дата публикации: 12 марта 2015 г.
Перевод: A. Панин
Дата перевода: 1 апреля 2015 г.

Глава 25. Клиент и сервер ssh

Безопасная командная оболочка (secure shell, ssh ) является набором инструментов, использующих защищенный протокол для взаимодействия с удаленными системами Linux.

В данной главе проведен обзор наиболее часто используемых команд, связанных с сервером sshd и клиентом ssh .

25.1. О протоколе ssh

25.1.1. Безопасная командная оболочка

Избегайте использования утилит telnet , rlogin и rsh для удаленного подключения к вашим серверам. Эти инструменты используют устаревшие протоколы, не предусматривающие шифрования данных сессии входа в систему, следовательно, ваши имя пользователя и пароль могут быть перехвачены с помощью таких инструментов, как wireshark или tcpdump . Для безопасного подключения к вашим серверам следует использовать протокол ssh .

Протокол ssh предусматривает два уровня защиты. Во-первых ваше соединение шифруется , а во-вторых, перед установкой соединения осуществляется двухсторонняя аутентификация .

Соединение по протоколу ssh всегда начинается с криптографического рукопожатия, после которого начинается передача зашифрованного с помощью симметричного алгоритма на транспортном уровне трафика. Другими словами, шифрование данных в туннеле начинается до того момента, когда вы начнете что-либо писать.

После установки защищенного соединения осуществляется аутентификация пользователя (с использованием имени/пароля пользователя или публичного/закрытого ключей) и начинается передача данных по защищенному соединению.

Протокол ssh предусматривает возможность сохранения данных о серверах, с которыми осуществлялось взаимодействие (поэтому при каких-либо подозрениях о ненадежности устанавливаемого соединения вы будете немедленно уведомлены).

Пакет openssh сопровождается разработчиками проекта OpenBSD и распространяется в составе множества операционных систем (вполне возможно, что это самый популярный пакет в мире).

25.1.2. Директория для файлов конфигурации /etc/ssh/

Файлы конфигурации клиента и сервера ssh находятся в директории /etc/ssh . В следующих разделах мы обсудим большинство файлов конфигурации из данной директории.

25.1.3. Версии протокола ssh

Существуют две версии протокола ssh (а именно, версии 1 и 2). Избегайте использовании версии 1 везде, где это возможно, так как данная версия содержит ряд известных уязвимостей. Вы можете управлять версией протокола, используемой клиентом ssh, с помощью файла конфигурации /etc/ssh/ssh_config , а демоном, являющимся сервером openssh - с помощью файла конфигурации /etc/ssh/sshd_config .

25.1.4. Публичные и закрытые ключи

Протокол ssh предусматривает использование известной системы публичных и закрытых ключей. Ниже приведено сжатое объяснение принципа использования данных ключей; дополнительная информация может быть найдена в энциклопедии Wikipedia.

Представьте, что два человека, Элис и Боб, хотят пообщаться друг с другом. Воспользовавшись публичными и закрытыми ключами , они могут общаться с шифрованием данных и аутентификацией .

25.1.5. Алгоритмы rsa и dsa

В данной главе не приводятся пояснения относительно реализации криптографических алгоритмов, а даются лишь рекомендации по поводу задействования алгоритмов rsa и dsa при работе с инструментами из комплекта поставки ssh. Дополнительная информация об упомянутых алгоритмах может быть найдена в энциклопедии Wikipedia:

В следующем примере показана методика использования клиента ssh для входа в удаленную систему Linux. Локальный пользователь с именем paul осуществляет вход в удаленную систему под именем admin42 .

Как вы видите, пользователь paul представлен с помощью соответствующего отпечатка ключа аутентификации rsa (rsa autentification fingerprint) на стороне удаленной системы. Локальный пользователь может принять его, введя слово yes . Как мы увидим позднее, данный отпечаток ключа аутентификации будет добавлен в файл

Пользователь может завершить работу с удаленной системой, выполнив команду exit или использовав сочетание клавиш Ctrl+D .

25.3. Выполнение команд в удаленной системе

В примере ниже показана методика выполнения единственной команды pwd в удаленной системе. В данном случае нет необходимости в явном завершении работы с системой с помощью команды exit .

25.4. Утилита scp

Утилита scp работает аналогично утилите cp , но при этом позволяет использовать протокол ssh при задании путей к исходному и целевому файлам. Ниже приведен пример копирования файла /etc/hosts с удаленного сервера в домашнюю директорию пользователя paul.

А это обратный пример копирования локального файла в директорию на удаленном сервере.

25.5. Настройка соединений по протоколу ssh без использования паролей

Для настройки соединения по протоколу ssh на основе публичных/закрытых ключей без использования паролей следует в первую очередь воспользоваться утилитой ssh-keygen с целью генерации пары ключей без использования фразы пароля, после чего скопировать ваш сгенерированный публичный ключ на удаленный сервер. Давайте поэтапно выполним описанные действия.

В следующем примере мы будем настраивать соединение по протоколу ssh без использования паролей для Элис и Боба. У Элис есть учетная запись на сервере, работающем под управлением дистрибутива Red Hat Enterprise Linux, а Боб использует дистрибутив Ubuntu на своем ноутбуке. Боб желает предоставить Элис доступ к своей системе по протоколу ssh с использованием публичных и закрытых ключей. Это означает, что даже в том случае, если Боб сменит свой пароль для входа в систему, используемую на ноутбуке, у Элис все так же будет доступ к его системе.

25.5.1. Утилита ssh-keygen

В примере ниже показано, как Элис использовала утилиту ssh-keygen для генерации пары ключей. Элис не вводила ключевую фразу.

Вы можете использовать команду ssh-keygen -t dsa аналогичным образом.

25.5.2. Директория

Помимо того, что утилита ssh-keygen генерирует публичные и закрытые ключи, она также создает скрытую директорию .ssh с необходимыми правами доступа. Вы можете создать директорию .ssh вручную, но в этом случае вам придется выполнить команду chmod 700 для установки необходимых прав доступа к ее содержимому! В противном случае клиент ssh откажется от использования ключей (так как использование общедоступных закрытых ключей не является безопасной практикой!).

Как вы видите, содержимое директории .ssh , находящейся в домашней директории Элис, надежно защищено.

Боб использует дистрибутив Ubuntu дома. Он решил самостоятельно создать директорию .ssh , поэтому ему придется позаботиться и о ее безопасности.

25.5.3. Файлы ключей id_rsa и id_rsa.pub

Утилита ssh-keygen генерирует файлы ключей в директории .ssh. Файл публичного ключа носит имя

/.ssh/id_rsa.pub . Файл закрытого ключа носит имя

При использовании алгоритма dsa вместо алгоритма rsa файлы будут носить имена id_dsa и id_dsa.pub .

25.5.4. Распространение публичных ключей по другим системам

Элис решила использовать утилиту scp для копирования файла публичного ключа со своего сервера на ноутбук Боба.

Проявляйте осторожность при копировании второго файла публичного ключа! Вы должны не перезаписывать файл первого публичного ключа, а добавить данные из файла нового публичного ключа в файл

Элис также могла бы использовать утилиту ssh-copy-id таким образом, как показано в примере ниже.

25.5.5. Файл authorized_keys

Вы можете создать файл с именем authorized_keys в директории

/.ssh вашей системы. Данный файл может содержать один или большее количество публичных ключей от людей, которым вы доверяете. Эти доверенные лица могут использовать свои закрытые ключи для подтверждения своей идентичности и получения доступа к вашей учетной записи по протоколу ssh (без ввода пароля). В примере показано содержимое файла authorized_keys из системы Боба, в котором сохранен публичный ключ Элис.

25.5.6. Соединение по протоколу ssh без использования паролей

Теперь Элис может использовать клиент ssh для соединения с ноутбуком Боба без использования пароля. Принимая во внимание возможность использования протокола ssh для выполнения команд на уделенных системах, можно сделать вывод о том, что приложения из различных систем могут объединяться каналами для выполнения полезной работы.

25.6. Перенаправление сессии оконной системы X11 по протоколу ssh

Другой популярной возможностью клиента ssh является возможность перенаправления сессии оконной системы X11 (X11 forwarding) по протоколу ssh с помощью команды ssh -X .

Ниже приведен пример перенаправления сессии оконной системы X11 по протоколу ssh: пользователь paul входит со своего компьютера под именем greet в удаленную систему с целью запуска приложения с графическим интерфейсом mozilla-thunderbird. Несмотря на то, что приложение будет исполняться на удаленном компьютере от лица пользователя greet, окно приложения будет показано на мониторе, подключенном к локальному компьютеру пользователя paul.

25.7. Отладка соединений по протоколу ssh

Используйте команду ssh -v для получения отладочной информации о попытке соединения по протоколу ssh.

25.8. Сервер sshd

Исполняемый файл сервера ssh носит имя sshd и содержится в пакете программного обеспечения openssh-server .

25.9. Ключи сервера sshd

Файлы публичных ключей, используемые сервером sshd, располагаются в директории /etc/ssh и могут читаться всеми пользователями. Файлы закрытых ключей могут читаться исключительно пользователем root.

25.10. Демон ssh-agent

При генерации ключей с помощью утилиты ssh-keygen у вас имеется возможность ввести ключевую фразу для ограничения доступа к этим ключам. Для того, чтобы не вводить ключевую фразу каждый раз при использовании файлов закрытых ключей, вы можете добавить закрытый ключ в базу данных демона ssh-agent с помощью утилиты ssh-add .

В большинстве дистрибутивов Linux демон ssh-agent запускается автоматически после входа пользователя в систему.

В данном примере показана методика использования утилиты ssh-add для вывода списка открытых ключей, которые соответствуют закрытым ключам, добавленным в базу данных демона ssh-agent .

25.11. Практическое задание: ssh

0. Убедитесь в том, что у вас есть доступ к двум компьютерам, работающим под управлением Linux , или объединитесь с соседом для выполнения этого практического задания. В этом практическом задании мы будем называть один из используемых компьютеров сервером.

1. Установите сервер sshd на компьютере, выступающем в роли сервера.

2. Проверьте файлы конфигурации на наличие директив, позволяющих использовать исключительно версию 2 протокола ssh.

3. Используйте клиент ssh для входа в используемую на сервере систему, вывода информации о вашей текущей директории и завершения работы с системой.

4. Используйте утилиту scp для копирования файла с вашего компьютера на сервер.

5. Используйте утилиту scp для копирования файла с сервера на ваш компьютер.

6. (Необязательное задание, которое может быть выполнено только в том случае, если у вас установлены дистрибутивы Linux с программными компонентами для реализации графических интерфейсов.) Установите пакет программного обеспечения xeyes на сервере и используйте клиент ssh для запуска утилиты xeyes на сервере с показом окна утилиты на мониторе клиентского компьютера.

7. (Необязательное задание, которое может быть выполнено при тех же условиях, что и предыдущее.) Создайте закладку в запущенном на сервере браузере Firefox, после чего завершите работу браузера на клиентском компьютере и сервере. Используйте команду ssh -X для запуска браузера Firefox на компьютере вашего соседа с показом окна на мониторе вашего компьютера. Видите ли вы закладку, созданную вашим соседом?

8. Используйте утилиту ssh-keygen для создания пары ключей без использования ключевой фразы. Настройте соединение по протоколу ssh без использования паролей между вашим компьютером и компьютером вашего соседа (или между клиентом и сервером).

9. Проверьте корректность прав доступа к файлам ключей сервера sshd; файлы публичных ключей должны читаться любым пользователем, а файлы закрытых ключей - только пользователем root.

10. Проверьте, исполняется ли демон ssh-agent .

11. (Необязательное задание) Защитите доступ к паре ваших файлов ключей с помощью ключевой фразы , после чего добавьте эти ключи в базу данных демона ssh-agent и проверьте работоспособность вашего соединения по протоколу ssh без использования пароля.

25.12. Корректная процедура выполнения практического задания: ssh

0. Убедитесь в том, что у вас есть доступ к двум компьютерам, работающим под управлением Linux , или объединитесь с соседом для выполнения этого практического задания. В этом практическом задании мы будем называть один из используемых компьютеров сервером.

1. Установите сервер sshd на компьютере, выступающем в роли сервера.

2. Проверьте файлы конфигурации на наличие директив, позволяющих использовать исключительно версию 2 протокола ssh.

3. Используйте клиент ssh для входа в используемую на сервере систему, вывода информации о вашей текущей директории и завершения работы с системой.

4. Используйте утилиту scp для копирования файла с вашего компьютера на сервер.

5. Используйте утилиту scp для копирования файла с сервера на ваш компьютер.

6. (Необязательное задание, которое может быть выполнено только в том случае, если у вас установлены дистрибутивы Linux с программными компонентами для реализации графических интерфейсов.) Установите пакет программного обеспечения xeyes на сервере и используйте клиент ssh для запуска утилиты xeyes на сервере с показом окна утилиты на мониторе клиентского компьютера.

7. (Необязательное задание, которое может быть выполнено при тех же условиях, что и предыдущее) Создайте закладку в запущенном на сервере браузере Firefox, после чего завершите работу браузера на клиентском компьютере и сервере. Используйте команду ssh -X для запуска браузера Firefox на компьютере вашего соседа с показом окна на мониторе вашего компьютера. Видите ли вы закладку, созданную вашим соседом?

8. Используйте утилиту ssh-keygen для создания пары ключей без использования ключевой фразы. Настройте соединение по протоколу ssh без использования паролей между вашим компьютером и компьютером вашего соседа (или между клиентом и сервером).

Решение подробно описано в разделе "Настройка соединений по протоколу ssh без использования паролей" теоретической части главы.

9. Проверьте корректность прав доступа к файлам ключей сервера sshd; файлы публичных ключей должны читаться любым пользователем, а файлы закрытых ключей - только пользователем root.

10. Проверьте, исполняется ли демон ssh-agent .

11. (Необязательное задание) Защитите доступ к паре ваших файлов ключей с помощью ключевой фразы , после чего добавьте эти ключи в базу данных демона ssh-agent и проверьте работоспособность вашего соединения по протоколу ssh без использования пароля.

Лучшие SSH-клиенты для Windows, Linux и macOS

Краткий обзор SSH-клиентов для всех актуальных операционных систем. Посмотрим, чем они отличаются друг от друга, какие у новых клиентов преимущества и есть ли хорошие бесплатные варианты.

Что такое SSH?

SSH или Secure Shell (что в переводе значит «безопасная оболочка») — это сетевой протокол, используемый для подключения к удаленным компьютерам и управлениями ими с помощью технологии туннелирования.

Если у вас, к примеру, есть сервер в Timeweb под управлением Linux, то вы наверняка подключаетесь к нему через OpenSSH (серверная реализация Secure Shell с открытым исходным кодом). То есть вводите сначала команду в духе ssh root@192.168.60.55 и потом выполняете команды, связанные непосредственно с ОС. Подобные возможности дают технологии Telnet и rlogin, но они не особо прижились.

Ключевое преимущество SSH, в сравнении с конкурентами, заключается в повышенной безопасности. Этот протокол шифрует передаваемые команды и защищает соединение между администратором и сервером от третьих лиц.

А что такое SSH-клиент?

Это приложение на стороне клиента, которое используется для передачи команд на удаленный компьютер. В примере выше мы говорили о подключении к серверу через терминал в macOS и Linux. Чтобы провернуть подобное в Windows, нужна специальная программа. Например, PuTTY.

Зачастую SSH-клиенты выполняют те же задачи, что и терминал, но обладают расширенной функциональностью. У них схожие принципы работы, и все различия можно оценить только в специфичных сценариях использования Secure Shell.

Выбираем SSH-клиент

Мы уже выяснили, что обособленно пользователи получить какую-то пользу от протокола не могут. Для управления нужна дополнительная утилита. Вопрос в том, какая именно. Secure Shell настолько востребован, что разработчики создали уже несколько десятков SSH-клиентов под различные платформы. В этом материале рассмотрим лучшие из них, разработанные для Windows, macOS и Linux.

Некоторые из них кроссплатформенные (то есть работают сразу на нескольких ОС) или запускаются в браузерах (это тоже делает их универсальными).

SSH-клиенты для Windows

Начнем с популярнейшей платформы. Несмотря на на отсутствие встроенных инструментов и общую неадаптированность под разработку и работу с серверами, для Windows создали как минимум десяток функциональных и быстрых SSH-клиентов.

PuTTY

Самый известный SSH-клиент для Windows. Пожалуй, единственный, что на слуху у всех вебмастеров. PuTTY отличается от конкурентов логичным интерфейсом вкупе с богатым арсеналом возможностей, включая настройку прокси-серверов и сохранение параметров подключения.

Интерфейс приложения PuTTY

PuTTY распространяется бесплатно и имеет открытый исходный код. При этом является одним из немногих SSH-клиентов, до сих пор активно развивающихся и получающих новые версии.

Утилита поддерживает протоколы SCP, SSH, rlogin и Telnet, а также работает со всеми методами шифрования данных.

Оригинальная программа доступна только для Windows, но есть порты от сообщества под другие платформы

KiTTY

За свою жизнь PuTTY обзавелся несколькими десятками форков (копий) от сторонних разработчиков. Каждый пытался внести в знаменитый SSH-клиент что-то свое. В итоге некоторые выросли в полноценные альтернативы, во много затмившие оригинал.

KiTTY базируется на PuTTY, но обладает массой преимуществ. Можно:

  • выставлять собственные фильтры для отдельных сессий;
  • хранить настройки в конфигурационной файле самой утилиты (чтобы хранить ее на флэшке, например, сохраняя настройки);
  • создавать алиасы для часто используемых команд (и наборов команд);
  • добавлять скрипты для автоматический аутентификации на сервере;
  • использовать гиперссылки;
  • настраивать интерфейс, меняя цвет текста, шрифты, степень прозрачности окна и другие визуальные элементы.

MobaXterm

Многофункциональный SSH-клиент, полюбившийся пользователям за высокую скорость работы, комфортный интерфейс и кучу дополнительных функций, отсутствующих у конкурентов. В нем есть браузер файлов, встроенный XServer для управления графическим интерфейсом на удаленном компьютере, масса плагинов, расширяющих возможности клиента, и portable-версия, работающая без установки.

Интерфейс терминала MobaXterm

Проект условно-бесплатный, поэтому большая часть функций недоступна до оплаты. Если не покупать платную версию, то функциональность MobaXterm будет мало чем отличаться от таковой в PuTTY. За профессиональную версию придется отдать 69 долларов.

Solar-PUTTY (бывший SolarWinds)

Один из немногих SSH-клиентов с современным интерфейсом. Это платная программа, что несомненно является ее недостатком. Но, в отличие от популярнейшего PuTTY, Solar умеет гораздо больше интересных вещей и лишен недостатков оригинала.

Интерфейс Solar-PuTTY

  • Сохраняет данные для входа. Не приходится постоянно проходить авторизацию заново.
  • Работает сразу с несколькими сессиями в одном окне (по вкладке на каждую).
  • Автоматически восстанавливает подключение, если оно по какой-то причине было утеряно.
  • Интегрирован в поисковик Windows.
  • Не требует установки. Всегда работает в portable-режиме.

Приложение обойдется в 99 долларов (

SmarTTY

Еще одна попытка упростить жизнь веб-разработчикам, полагающимся на SSH. Создатели SmarTTY уделил много внимания ускорению работы пользователей и повышению удобства выполнения элементарных задач.

Например, появился режим отображения терминалов в отдельных вкладках. Сам терминал научился автоматически завершать команды и быстро искать файлы. В него добавили графический интерфейс для загрузки файлов на сервер без необходимости использовать командную строку.

Также в SmarTTY встроен многофункциональный текстовый редактор с возможностями Nano и hex-терминал для отслеживания COM-портов. А еще есть portable-версия, для работы с которой даже не нужно выполнять установку.

Xshell

Полнофункциональный SSH-клиент для Windows. Отличается от PuTTY и схожих продуктов возможностью задавать разные параметры для каждой терминальной сессии, создавать общие скрипты на несколько сессий.

Он поддерживает командную строку Windows и протокол SCP. Также в него встроен файловый менеджер для управления документами в графической среде.

Интерфейс XShell

Можно записывать выполняемые команды и превращать «записанный» материал в один скрипт, который после можно перезапустить в любой момент.

Tera Term

Популярный эмулятор терминалов для Windows с открытым исходным кодом. Может имитировать DEV VT100, DEC VT382 и другие модели. Написан на языках С и С++. Поддерживает технологии Telnet, SSH 1 и SSH 2.

Tera Term можно интегрировать с другими приложениями с помощью встроенного веб-сервера. В нем можно настроить повторяющиеся команды, поддерживающие терминал в рабочем состоянии, создавать скрипты на собственном языке Tera Term Language.

Из недостатков можно выделить устаревший дизайн и не совсем интуитивный интерфейс в сравнении с другими подобными приложениями.

Распространяется бесплатно, как и другие Open-Source-продукты.

SSH-клиенты для Linux

Пользователи Linux редко используют графические утилиты или какие-то усовершенствованные варианты SSH. Обычно все работают во встроенном терминале, но есть несколько неплохих решений для тех, кому нужно больше.

Terminal

В UNIX-подобных операционных системах есть встроенная поддержка OpenSSH. Можно использовать базовый терминал для подключения к удаленному серверу и управлению им. Интерфейс аналогичный тому, что вы можете встретить в большинстве SSH-клиентов. Только не придется скачивать сторонние программы и плагины.

Чтобы подключиться через терминал к серверу, надо ввести команду:

В моем случае это выглядит так:

После этого терминал запросит разрешение на установку соединения с удаленным сервером. Нужно согласиться, введя команду Yes и пароль администратора, чтобы авторизоваться и получить контроль над удаленным ПК.

Asbru Connection Manager (Linux)

Бесплатный интерфейс для удаленного подключения к серверу и автоматизации повторяющихся на нем задач. У Asbru простой механизм настройки соединения с VDS и есть свой язык для создания скриптов, как в SecureCRT.

Из дополнительных возможностей можно отметить функцию подключения к удаленному ПК через прокси-сервер, интеграцию с сервисом KeePassX, поддержку отдельных вкладок и окон под разные сессии, запущенные единовременно.

Интерфейс программы Asbru

А еще он грамотно вписывается в интерфейс GTK и в окружение GNOME как визуально, так и в техническом плане.

Asbru можно запустить на Windows, используя компоненты Xming и включив WSL, но это весьма специфичный сценарий.

Бывший Snowflake. Графический клиент для подключения к серверу по протоколам SFTP и SSH. Включает в себя текстовый редактор, анализатор пространства на жестком диске, утилиту для считывания логов и прочие полезные инструменты.

Интерфейс приложения Muon

Из прочих преимуществ отмечу:

  • Быстрый доступ к часто используемым функциям вроде копирования файлов, архивирования, запуска скриптов, проверки прав на директории и т.п.
  • Поиск по массивным логам.
  • Встроенный терминал с поддержкой сниппетов (сокращенных версий команд, созданных пользователем).
  • Сетевые инструменты и приложение для менеджмента SSH-ключей.

Muon создавался с прицелом на веб-разработчиков, работающих над бэкэнд-составляющей сайтов.

SSH-клиенты для macOS

Компьютеры Apple поддерживает подключение по протоколу SSH прямо из встроенного терминала. Для этого используется та же команда, что и в Linux:

Также с последующем подтверждением подключения и авторизацией. Поэтому в macOS (как и в Linux) обычно не используются сторонние SSH-клиенты. Но они есть, и многие из них довольно качественные.

iTerm 2

Одна из главных альтернатив встроенному в macOS терминалу. Попытка расширить возможности стандартной командной строки необходимыми функциями, которые Apple упорно игнорирует годы напролет. Например, поддержку режима сплит-скрин, когда в одном окне отображается сразу два терминала с разными сессиями, или возможность добавлять комментарии к запущенным командам.

SHH-клиент iTerm2

Отдельно отметим функцию Instant Playback. С помощью нее можно воспроизвести одну или несколько команд, которые были выполнены ранее, не вводя их заново. Ну а еще тут можно выделять, копировать и вставлять текст, не используя мышь (пользователи macOS поймут).

Shuttle

Технически это не полноценный SSH-клиент, как другие описываемые в статье. Это кнопка в панели инструментов, открывающая быстрый доступ к некоторым функциям для управления сервером. Прелесть утилиты заключается в ее универсальности и расширенных возможностях для ручной настройки.

Все параметры хранятся в файле

/.shuttle.json, который идет в комплекте с базовой утилитой. Туда можно прописать любой скрипт, используемый вами в терминале, а потом запускать его прямо с панели инструментов через компактный графический интерфейс Shuttle. Это может заметно ускорить выполнение кучи рутинных процедур.

Core Shell

SSH-клиент для macOS, поддерживающий работы сразу с несколькими хостами. Можно быстро между ними переключаться в одном окне с помощью вкладок или выделить каждый из них в отдельное окно. Каждому хосту назначается своя цветовая гамма. Чтобы было еще проще их разбивать по категориям, Core Shell поддерживает систему тегов.

Используя Core Shell, можно подключиться к VDS через прокси-сервер и выполнять переадресацию агента SSH.

Core Shell поддается скрупулезной настройке и «подгонке под себя». Причем клиент способен запоминать глобальные параметры для всех хостов и отдельные параметры для каждого из хостов. А еще в него интегрирована поддержка iCloud Keychain (хранилище паролей Apple).

Кроссплатформенные клиенты

Эмуляторы терминала, написанные на языках, поддерживающих сразу несколько операционных систем.

Hyper

Один из самых красивых терминалов в подборке. В отличие от других SSH-клиентов, этот не отличается какой-то специфичной функциональностью. Напротив, он практически полностью повторяет функциональность базовой командной строки. Поэтому пользователям он нравится не за обилие возможностей, а за простоту и симпатичный внешний облик.

По словам разработчиков, это попытка создать максимально быстрый и надежный терминал. Это был их приоритет при разработке. При этом он построен на базе фреймворка Electron, что делает его универсальным и расширяемым.

SSH-клиент Hyper

Если вы перфекционист и привыкли к изысканным интерфейсам macOS, то Hyper станет правильным выбором. Он здорово впишется в дизайн ОС Apple благодаря своим плавным линиям и приятными анимациям.

Доступен на Windows, macOS и Linux. Распространяется бесплатно.

Terminus

Терминал нового поколения (как его называют разработчики). Кроссплатформенный эмулятор терминала с поддержкой WSL, PowerShell, Cygwin, Clink, cmder, git-bash и десятка других технологий.

Есть полезные опции, такие как восстановление закрытых вкладок из предыдущей сессии и кликабельные пути к директориям.

Интерфейс Terminus можно настроить под себя с помощью разметки CSS. То же касается и функциональной составляющей. Ее можно «прокачать» за счет сторонних плагинов, число которых постепенно растет.

Доступен на Windows, macOS и Linux. Распространяется бесплатно.

Tectia

Продвинутый SSH-клиент, используемый крупнейшими банками мира, страховыми компаниями, технологическими корпорациями и государственными органами. Он обеспечивает безопасную передачу файлов за счет использования множества методов шифрования данных.

Tectia поддерживает стандарт аутентификации X.509 PKI, задействует сертифицированные криптографические методы FIPS 140-2 и может работать со смарткартами. Услугами Tectia пользуются такие внушительные структуры, как NASA и Армия США. Они доверяют Tectia, потому что это стабильный SSH-клиент с круглосуточной отзывчивой поддержкой. Как любой дорогой коммерческий продукт.

Доступен на Windows, Linux и других UNIX-подобных ОС. Обойдется в 133 доллара за клиент-версию и 650 долларов за сервер-версию.

Termius

Кроссплатформенный SSH-клиент с приложением-компаньоном для iOS и Android. Наличие мобильной версии — ключевое преимущество программы. С помощью нее можно на ходу вносить изменения на сервер, управлять базой данных и выполнять прочие действия, обычно требующие доступа к полноценному ПК.

SSH-клиент Termius

Он адаптирован под сенсорные экраны и синхронизируется между всеми вашими устройствами, используя стандарт шифрования AES-256.

Доступен сразу на пяти платформах, включая мобильные. Распространяется по подписке за 9 долларов (

Poderosa

Профессиональный SSH-клиент, перешедший из стана opensource-проектов в разряд платных. Разработчики проекта видят своей задачей создание понятного интерфейса для управления серверами. Так, чтобы привыкшие вебмастера не путались, но обладали более широким набором инструментов.

Из функций создатели Poderosa выделяют удобный мультисессионный режим, когда экран делится на несколько частей и показывает сразу несколько терминалов. Можно также создать несколько вкладок, в каждый из которых будет по 4 терминала.

Есть ассистент, помогающий быстрее вводить часто используемые команды, и масса опций для изменения интерфейса (включая шрифты, цвета отдельных типов данных и т.п.).

SecureCRT

Коммерческий SSH-клиент с расширенным набором функций. Отличается от большинства конкурентов усиленными механизмами защиты данных. Поддерживает сразу несколько протоколов, включая SSH2 и Telnet. Эмулирует различные Linux-консоли и предлагает массу настроек внешнего вида.

SSH-клиент SecureCRT

Из отличительных функций можно отметить возможность создавать свои горячие клавиши, менять цвет отображаемого контента, искать по ключевым словам, запускать несколько окон с разными или одним сервером, открывать несколько сессий в разных вкладках. Также функциональность SecureCRT можно расширить за счет скриптов на языках VBScript, PerlScript и Python.

Доступен сразу на трех ОС. Распространяется по подписке за 99 долларов (

SSH-плагины для браузеров

Портативные SSH-клиенты, запускающиеся внутри браузеров и не требующие специфической ОС.

Chrome Secure Shell App

Google Chrome уже давно метит в полноценную платформу с функциональностью операционной системы. Поэтому разработчики из команды Google Secure Shell поспешили создать для него полнофункциональный эмулятор терминала.

С помощью Chrome Secure Shell App можно подключиться к серверу по протоколу SSH и выполнять стандартные команды, к которым вы привыкли, во встроенном терминале или в условном PuTTY. Разница отсутствует.

Получалась неплохая бесплатная альтернатива для тех, кто не хочет ставить сторонние приложения.

FireSSH

Еще один плагин, имитирующий терминал в браузере. Ранее он функционировал внутри Firefox, но компания Mozilla ограничила поддержку расширения. Поэтому сейчас FireSSH работает только в Waterfox. Это инди-форк от Firefox.

Он написан на JavaScript, распространяется бесплатно и помещает в браузерную среду все возможности стандартного SSH-клиента (на уровне терминала).

Выводы

Что касается выбора, то все зависит от личных предпочтений. Кому-то важна визуальная составляющая, кому-то функциональность, а кому-то хочется управлять сервером через SSH как можно проще. В любом случае можно попробовать все бесплатные варианты и принять решение уже после.

zolt85

UPDATE
На Linux Mint 20 и Ubuntu 20.04 asbru-cm не подключается к серверам по RDP. Летом 2020 года я снова поставил Remmina. Она стала сильно хороша и многие ее недостатки были исправлены. Присмотритесь к ней.

PAC забросили и теперь он не работает на Ubuntu18.04 и Linux Mint 19. Добрые люди сделали форк и назвали Ásbrú Connection Manager Да, я давно нашел его форк. Спасибо за ответ, это будет полезно многим. Пользуюсь реминой, иногда сильно она меня огорчает, но сделать ничего не могу.

pklyuev

Когда "огорчает" пользуюсь xfreerdp из консоли (в редких случаях, например, пробросить смарт-карту в удаленную сессию)

terminator для ssh
запуск xfreerdp, vncviewer из консоли.

Везде аутентификация по ключу.

Пробовал пару раз remmina, стошнило и больше gui не пользую

Из консоли запускать сильно не хочется, так я могу хранить все данные о подключениях в файле и вручную запускать каждое соединение, но очень неудобно и именно от этого спасает менеджер подключений. Кроме реммины ничего под описание не попадает.
Но ssh-ем лучше нативным пользоваться. ssh конечно из консоли, но если бы эта консоль вызывалась из менеджера, да еще и с вкладками :)

mars_unique

Манагинг вкладок групп и прочее решается при помощи терминала.
ssh - ssh
telnet - telnet
vnc - gnu vnc viewer
rdp - freeRDP
  • Сохранение паролей с возможностью их просмотра по мастер паролю
  • Доступ на открытие программы или чтение базы подключений по мастер паролю

Храненине паролей - грабит караваны.
И все-же если есть подобная нужда, включая базу подключений можно вести в sqlite к примеру, а если сильно хочется гуя, рекомендовал бы zenity

Не соглашусь с Вами.
Естественно, менеджер запускает терминал, если коннект идет по SSH, пусть стартует freeRDP, если надо на винду. Но делает он это из своей оболочки. Тут же стоит вопрос управления и удобства, а не правильности выбранных инструментов.

Если одно-два подключения, то можно и запомнить их данные, и даже вызывать каждый раз их консоли. Если же число более 10, то это ненужная информация в голове и затраты времени на подключение. Задача менеджера помогать упорядочивать все эти данные и делать доступ комфортным. PAC Manager же прекрасно работает с KeePass, котораый достает учетные данные к подключению по мастер паролю из зашифрованного хранилища.

SSH - это основной протокол для удаленного управления серверами на базе операционной системы Linux. Все действия при подключении к SSH выполняются в командной строке, но при достаточном уровне знаний и привилегий в системе там можно сделать практически все что угодно, в отличие от того же FTP где можно только передавать и редактировать файлы.

Если вы покупаете VPS сервер или продвинутый хостинг, обычно в письме вместе с другими данными авторизации есть данные доступа по SSH. В этой статье мы рассмотрим как подключиться по SSH к серверу из Linux или Windows.

Что такое SSH?

Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.

Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.

Как подключиться по SSH

Для подключения по SSH нам необходимо знать такие данные:

  • ip адрес сервера, к которому мы собираемся подключится;
  • порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
  • имя и пароль пользователя на удаленном сервере.

Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.

1. Подключение через SSH в Linux

В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:

$ ssh имя_пользователя @ айпи_адрес

Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:

$ ssh имя_пользователя @ айпи_адрес -p порт

Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:

Или, с нестандартным портом:

ssh sergiy@192.168.1.2 -p 2223

Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:


Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:


Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:


Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:


Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:

sudo ufw allow 22/tcp

А в CentOS/Fedora:

firewall-cmd --permanent --zone=public --add-port=22/tcp

Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.

Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.

2. Подключение через SSH в Windows

Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:



Затем выберите Управление дополнительными компонентами:


Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:


Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.


После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:


Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:

ssh имя_пользователя @ айпи_адрес -p порт

Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:

Утилита предложит добавить устройство в список известных:

Затем предложит ввести пароль:


Все следующие команды будут выполняться уже на Raspberry Pi или другой удаленной машине, к которой вы подключились.


Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.

Выводы

В этой статье мы рассмотрели как выполняется подключение к серверу по SSH из Linux или Windows. Как видите, это очень просто. А дальше, для работы с удаленным сервером вам понадобятся команды терминала Linux.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Читайте также: