<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tui on Lead DevOps</title><link>https://lead-devops.blackdevhub.online/tags/tui/</link><description>Recent content in Tui on Lead DevOps</description><generator>Hugo</generator><language>ru</language><lastBuildDate>Sun, 30 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://lead-devops.blackdevhub.online/tags/tui/index.xml" rel="self" type="application/rss+xml"/><item><title>ssh-connection-manager: TUI для хостов из ~/.ssh/config</title><link>https://lead-devops.blackdevhub.online/posts/ssh-connection-manager/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate><guid>https://lead-devops.blackdevhub.online/posts/ssh-connection-manager/</guid><description>&lt;p&gt;Когда в &lt;code&gt;~/.ssh/config&lt;/code&gt; десятки стендов, bastion и jump-хостов, вспоминать алиасы уже не хочется. &lt;strong&gt;ssh-connection-manager&lt;/strong&gt; — это TUI поверх обычного OpenSSH: список хостов, фильтр, подключение штатным &lt;code&gt;ssh&lt;/code&gt;, добавление новой записи в конфиг.&lt;/p&gt;
&lt;p&gt;Команда в терминале — &lt;code&gt;ssh-connect&lt;/code&gt;. Репозиторий: &lt;a href="https://gitlab.com/public-projects-docff-devops/ssh-connection-manager"&gt;gitlab.com/unsorted-projects/ssh-connection-manager&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="зачем-не-ещё-один-ssh-клиент"&gt;Зачем не ещё один SSH-клиент&lt;/h2&gt;
&lt;p&gt;Клиент уже есть: системный &lt;code&gt;ssh&lt;/code&gt;. Нужен не новый протокол, а навигация по конфигу.&lt;/p&gt;
&lt;p&gt;Утилита:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;читает &lt;code&gt;~/.ssh/config&lt;/code&gt; или другой файл (&lt;code&gt;-c&lt;/code&gt;);&lt;/li&gt;
&lt;li&gt;показывает только конкретные &lt;code&gt;Host&lt;/code&gt;, без wildcard-шаблонов вроде &lt;code&gt;Host *&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;учитывает &lt;code&gt;Include&lt;/code&gt; (до 16 уровней вложенности);&lt;/li&gt;
&lt;li&gt;на &lt;code&gt;Enter&lt;/code&gt; приостанавливает TUI и запускает &lt;code&gt;ssh -F &amp;lt;config&amp;gt; &amp;lt;alias&amp;gt;&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;после выхода из сессии снова открывает список.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Под капотом Python 3.11+ и &lt;a href="https://textual.textualize.io/"&gt;Textual&lt;/a&gt;. Свой SSH-стек не пишется: ключи, &lt;code&gt;ProxyJump&lt;/code&gt;, агент — всё остаётся на OpenSSH.&lt;/p&gt;</description></item></channel></rss>