На сегодняшний день SSH-клиентов написано множество: от встроенных в ОС терминалов до отечественных решений вроде МС22. Я решил протестировать популярные варианты и сравнить, какой будет лучше.
Встроенные терминалы ОС
Для начала поговорим о том, что поставляется вместе с операционками.
Windows Terminal
Последние версии Windows 10 и Windows 11 включают встроенный сервер SSH и клиент на базе OpenSSH. Сеанс SSH запускается в командной строке по команде ssh user@machine. [источник]
Этот функционал поддерживает простые SSH-команды: подключение к серверу, использование ключей, и тд. Однако это всё же не специализированное ПО.
В командной строке отсутствует графический интерфейс для управления сессиями, возможности типа туннелирования там недоступны. Для простых задач этого может хватить, но для множества серверов и сессий лучше найти что-нибудь помощнее.
macOS Terminal
В macOS также имеется встроенный терминал. Начало работы аналогичное: ssh user@IP-Address. [источник]
Поддерживаются такие протоколы, как SSH, SCP и SFTP, можно работать с *nix-серверами. Но здесь, как и с Windows, возможности ограничены.
Linux Terminal
В каждом дистрибутиве Linux командная строка позволяет устанавливать ssh-сессии, и здесь нет принципиальных отличий от предыдущих пунктов. [источник]
Здесь возможна и поддержка ssh-ключей, и работа с разными сетевыми протоколами.
Недостатки встроенного терминала Linux - такие же, как и в двух предыдущих пунктах. Графический интерфейс и удобная поддержка нескольких сессий здесь отсутствуют.
***
Встроенные в ОС терминалы - это всё же стандартные приложения без дополнительных возможностей настройки. Они подойдут для управления максимум 1-2 серверами. Поэтому стоит искать специализированные ssh-клиенты.
Я попробовал наиболее популярные решения, чтобы проверить, какие из них будут лучше.
PuTTY
PuTTY один из самых известных и старых SSH-клиентов. Когда-то он решал задачу, как подключиться из Windows к Linux-серверам. Он распространяется бесплатно и доступен для Windows и Linux.
Поддерживает такие протоколы, как SSH, Telnet, SCP, SFTP. PuTTY позволяет сохранять сессии, конфигурации подключения, ключи SSH и другие параметры, с его помощью можно реализовать проброс портов… [источник]
Это мощное решение, однако неудобное чисто с точки зрения пользовательского опыта: нельзя открыть много вкладок за раз, для нового соединения в принципе надо открывать программу снова и снова, и так далее. Чтобы решить этот вопрос, можно поставить PuTTY Connection Manager, но это всё же дополнительные действия. С PuTTY хорошо работать, когда под управлением до 4-5 серверов.
SecureCRT
Создатели акцентируют внимание на его безопасности. [источник]
Работает со множеством протоколов: SSH 1 и 2, Telnet, rlogin, Serial. Поддерживает работу со множеством вкладок.
В SecureCRT рутинные задачи можно автоматизировать при помощи скриптов на Python и других языках, либо с помощью функционала записи скрипта. [источник]
Однако это платное ПО. К тому же, при работе с большим количеством сессий SecureCRT потребляет больше ресурсов, чем тот же PuTTY.
MobaXterm
Легковесное ПО, к которому при желании можно скачать и установить плагины на любой вкус. [источник]
MobaXterm поддерживает SSH, RDP, VNC, SFTP, SCP и FTP. В нём реализованы поддержка нескольких вкладок и возможность создавать макросы. Можно управлять сразу несколькими серверами и запускать графические приложения на них.
MobaXterm - тоже платное ПО. Для него существует Home Edition, однако с сильно урезанными функциями: можно создавать за раз не более 12 сессий, 4 SSH-туннеля. В Home Edition можно создать всего 4 макроса. Этого маловато для полноценной работы, особенно когда хочется автоматизировать рутину.
SmarTTY
SSH-клиент для Windows, разработанный с акцентом на удобство использования и расширенную функциональность. Позволяет на лету копировать файлы с помощью SCP и редактировать их. [источник]
Есть встроенный графический менеджер, который позволяет перетаскивать файлы между локальным компьютером и удалённым сервером.
В SmarTTY также реализована поддержка нескольких вкладок. Создатели не зря упирают на удобство в плане UX: программа больше похожа на старый интегратор, нежели на SSH-клиент, в ней хорошо редактировать файлы, всё отлично визуализировано. Есть возможность настроить подсказки в командной строке.
Удобно, только вот серьёзно администрировать сервера с его помощью не получится. Протоколов поддерживается мало, о более сложных функциях типа проброса портов речи не идёт в принципе.
Xshell
Мощное решение с интуитивным интерфейсом: поддерживает множество протоколов, автоматизацию задач при помощи скриптов на разных языках, и так далее. [источник]
В Xshell возможно создание пользовательских профилей, так что не требуется вводить данные каждой сессии заново. Можно настроить цвета интерфейса и быстрые команды. Возможно даже создание триггеров, которые будут выполняться, когда на экране появятся определённые команды.
Настоящий монстр - но и стоит соответственно. Цены начинаются от 99 долларов в год.
МС22
Отечественный (как ни странно, единственный, который нашел, отечественный) SSH-клиент, который поддерживает множество протоколов: SSH, SFTP, Telnet, Serial, RDP и VNC. Пользователям доступна круглосуточная поддержка на русском языке. [источник]
Как и в XShell, в МС22 реализованы функционал закладок и пользовательских профилей. Чтобы сохранить сессию, её можно добавить в закладки и привязать к профилю: тогда не потребуется вводить данные входа снова и снова. Вкладок с сессиями в МС22 можно открывать несколько.
Рутина вполне автоматизируется: в МС22 есть составные быстрые команды (когда выполняются сразу несколько действий), есть возможность вызывать эти команды по сочетанию клавиш.
Из любопытного: при подключении в МС22 автоматическии подключается SFTP для передачи файлов, то есть, отдельное ПО для работы с файлами можно не использовать. Такого я у других ssh-клиентов не помню.
Есть возможность настроить оформление. В МС22 реализована поддержка двойных шрифтов для ASCII и не ASCII символов, чтобы названия файлов правильно отображались.
Заключение
Упорядочив, получаем таблицу.
Терминал |
Протоколы |
Поддержка нескольких вкладок |
Автоматизация рутины |
Цена |
PuTTY |
SSH, Telnet, SCP, SFTP |
Нет |
Нет |
- |
SecureCRT |
SSH, Telnet, RLOGIN, SERIAL |
Да |
Да, в тч с помощью языков программирования или записи макроса |
от $100 |
MobaXTerm |
SSH, RDP, VNC, SFTP, SCP, FTP |
Да |
Да, через запись макроса |
Professional Edition от $69 |
SmartTTY |
SSH, SFTP, SCP |
Да |
Нет |
- |
Xshell |
SSH, SFTP, TELNET, RLOGIN, SERIAL |
Да + функционал профилей |
Да |
от $99 |
МС22 |
SSH, Mosh, SFTP, Telnet, RDP, RFB |
Да + функционал профилей |
Да, в тч составные команды |
от 2 500 ₽ |
Каждый выбирает по потребностям. Мне совершенно не хватает того, что может дать встроенный терминал. PuTTY, ветеран в этой области, подойдёт для личного использования.
Хорошие корпоративные решения с удобным UX, как правило, и денег стоят хороших. Кроме того, на территории России компаниям с госучастием со следующего года нельзя будет использовать зарубежное ПО.
В итоге для корпоративных нужд был выбран МС22. Тут и множество протоколов, и удобство, и возможность работать в условиях импортозамещения.
Комментарии (51)
valvalva
06.10.2024 13:44+6стандартные приложения без дополнительных возможностей...
Помогут ключи -R и -L, ssh-keygen, ssh-copy-id
Andy_U
06.10.2024 13:44+4Этот функционал поддерживает простые SSH-команды: подключение к серверу, использование ключей, и тд. Однако это всё же не специализированное ПО.
В командной строке отсутствует графический интерфейс для управления сессиями, возможности типа туннелирования там недоступны. Для простых задач этого может хватить, но для множества серверов и сессий лучше найти что-нибудь помощнее.
Чтобы вы понимали, это
>ssh -V
OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
Все тот же OpenSSH, к серверу которого вы в будете коннектиться в подавляющем большинстве случаев. Т.е. именно этот клиент (вместе с sftp и stp) и является максимально совместимым с сервером (OpenSSH) по опциям и возможностям.
Единственно, что PuTTYgen приходится иметь в заначке по единственной причине - NetBOX, который в Far manager sftp/scp обеспечивает, требует ключи в формате Putty, вдобавок еще и в устаревшем формате v.2.
warus
06.10.2024 13:44+5зачем? в cтандартном ssh и scp есть порты тунели прекрасно пробразываются, а вкладки пускай терминал и tmux этим занимаются, зачем эти костыли онли винда?
кстати когда? putty разучился работать с ком портом SERIAL?
автоматизация ansible со стандартным ssh прекрасно работает, что это за недоделки?
можно тунель можно до rdp, VNC машины добросить или тот же xserver, но зачем он нужен в ssh клиенте,
есть Remmina которая не rdp, vnc, не ssh клиент, а существующие склеивает, вкладки, почта голос там есть
sukharichev
06.10.2024 13:44+23Обещали рассмотреть ссш-клиенты, а рассмотрели агрегаторы соединений (или как их правильно назвать?). При этом бесплатный и opensource mremote-ng как-то не упомянули. У него есть минусы, но забесплатно лучше ничего не видел. Существенных минусов всего три - немного мылит картинку в RDP, странно реагирует на alt+tab, и передача файлов отдельно. Если в основном работаете с ssh, а RDP изредка или недолго - оптимальный вариант. А за деньги все равно лучше mobaxterm ничего нет.
UPD: МС22 стоит 2500 р. В МЕСЯЦ?
Они там нормальные вообще? MobaXterm пожизненная с обновлениями на первый год 49 Евро выходит дешевле!VirtualVoid
06.10.2024 13:44+41 лицензия это подразумевается на 1 рабочее место?
Какие-то оч. подозрительные, я бы даже сказал заградительные цены.
Nengchak
А зачем все это? SSH клиент уже встроен в винду, ставится легко на мак\linux и все работает хорошо
djton1k
Он умеет создавать туннели?
baldr
Конечно умеет. Это же OpenSSH. Я через него на удалённом виндовом сервере себе туннели поднимаю и работаю.
RosT9mba
Поддерживаю предыдущего оратора!)
С ключами -R -L -D (в зависимости какой туннель нужен), так же можно использовать ProxyJump и короткие алиасы для удобства. C ключом -R можно даже дать интернет удалённой машине без инета, предварительно настроить на своей машине простенький прокси типа Squid.
Можно себе сильно упростить жизнь, используя ssh config - самая прелесть в том, что один и тот же конфиг работает на Linux, Windows и macOS, достаточно его скопировать в каталог .ssh/ Пользователя и поправить путь, например до приватного ssh ключа.
Вот пример конфига для WinOS, может кому полезно будет:
Host srv1
Hostname 10.10.100.10
User adm
PreferredAuthentications publickey
IdentityFile C:\Users\Usr\.ssh\id_ed25519
Port 22
Host srv2
Hostname 10.10.100.11
User adm
PreferredAuthentications publickey
IdentityFile C:\Users\Usr\.ssh\id_ed25519
LocalForward 9002 127.0.0.1:9002
Port 22
ProxyJump srv1
arheops
Windows on linux-> ставите убунту ту же из магазина виндоуз, бесплатно. потом просто запускаете в ней полноценный баш и опенссш тунель.
Единственно, немного криво копи-паст в этой связке работает если сравнивать с secureCRT
Окна поддерживаются виндоус-терминалом, все остальное включая "запись скриптов" и "автоматизацию Python" автоматом идет из убунту.
А путти за 20 лет не сделали вкладки - теперь уже и не сделают.
novikovalejandro
Те кому нужны туннели не нужен gui от слова совсем.
aik
Ну вот лично мне в нём поддержки кодировок не хватает, табов, списка хостов...
Это как в линуксе - есть же текстовая консоль, но все почему-то Х'овые эмуляторы терминалов предпочитают.
nEkToSAN
Хз, я на работе уже привык к терминалу и на GUI иногда теряюсь в поисках нужной функции)
aik
Вы теряетесь в функциях эмулятора терминала?