Путь
/ОС/Linux
- [⬆ вверх]
- Cписок проверки знаний Linux для детей.md
- DEBTAP КАК ЗАСТАВИТЬ .DEB СЛУЖИТЬ ARCH'У.md
- Gpg генерация ключей.md
- Nmtui - настройка сети.md
- Punycode - как русский домен превратить в ASCII.md
- Systemd и что это такое..md
- Taskwarrior - Примеры с комментариями.md
- Wi-Fi в Linux откуда боль и как её лечить.md
- ZSH - что за shell?.md
- iptables
- megacli - утилита управления LSI MegaRAID контроллерами..md
- ssh вход по ключу для root'a.md
- zfs шпаргалка.md
- zpool шпаргалка.md
- Взять цвет пипеткой.md
- Встроенные переменные Bash (POSIX-compatible).md
- Выкачать всё из папки по ftp.md
- Генерим себе пароли.md
- Группа wheel.md
- Добавление принтера на archLinux.md
- Зашифровать папку.md
- Звук
- Игры
- Как дверь по паролю на SSH запереть!.md
- Как определять какие кнопки жмакаются.md
- Как подключить джостик от PS3 к Linux.md
- Как раскрасить вывод echo?.md
- Как узнать какая материнка стоит?.md
- Качаем с youtub'a.md
- Конвертирование в .iso различных образов..md
- Копирование без кеширования.md
- Куда пишутся "логи неудачных попыток входа в систему"?.md
- Настройка ntp.md
- Настройка сети в ручную на arch'e.md
- Не работает звук. Что делать?.md
- Нет wifi карты на ноуте, что делать?.md
- Обновление ключей в Arch Linux.md
- Обработка видео под Linux.md
- Обучение
- Основные пакеты при установке arch linux.md
- Очистка кеша pacman и yay.md
- Перевод выделенного текста и показ перевода в графическом диалоговом окне KDE.md
- Перегенерить mirrors.md
- Переменные окружения (ENV).md
- Переходим с remmina на терминал.md
- Работа с .qcow2.md
- Сменить имя hostname.md
- Создание пользователя.md
- Создание собственной сети внутри Docker'a.md
- Специфично для Linux переменные окружения.md
- Список пакетов для установки Arch'a.md
- Ставим Arch Linux на RAID1.md
- Ставим i3 на Arch Linux.md
- Удаление защищённых файлов.md
- Установка tinyproxy.md
- Установка vim на стероидах.md
- Установка видео драйверов.md
- Установка документации.md
- Установка пакетов из исходников в Arch Linux.md
- Чиним не рабочие F1-F12.md
- Что за "коровья СУПЕРСИЛА"?.md
- Что такое Linger в системе systemd.md
- Шпаргалка по всему systemd.md
- список команд для mdadm - утилиты для управления RAID-массивами.md
Подключение к SSH как в Remmina, но через консоль с автоподстановкой хостов из ~/.ssh/config.
Итог / команда:
Подключаемся к хосту через zssh <имя_хоста> с автоподстановкой из ~/.ssh/config.
Шаги:
- Шаг 1: Установить
fzfиzsh+ плагинzsh-ssh-configили сделать алиас. - Шаг 2: Настроить
~/.ssh/configс хостами, алиасами, портами, пользователями. - Шаг 3: В
~/.zshrcдобавить функцию для интерактивного выбора хоста черезfzf. - Шаг 4: Перезапустить терминал или
source ~/.zshrc. - Шаг 5: Использовать
zsshдля автоподстановки и подключения.
Пример кода / команд:
# ~/.ssh/config
#Главный сервак
Host f.test.cc
HostName 45.83.105.14
User x
Port 22
ForwardX11 yes
ForwardX11Trusted yes
#zssh-hide
#Сервак git'a, скртый для показа в zssh
Host git.test.cc
HostName 45.83.105.15
User git
IdentityFile ~/.ssh/id_rsa
Port 2202
# ~/.zshrc
zssh() {
local host
host=$(awk '
BEGIN {
printf "%-20s %-20s %-10s %-6s %-60s\n", "Host", "HostName", "User", "Port", "Desc"
print "----------------------------------------------------------------------------------------------------"
}
{
line=$0
gsub(/^[ \t]+/, "", line)
if(line ~ /^#/) {
comment_lines[NR]=line
next
}
if(line ~ /^Host[ \t]+/) {
# собираем комментарии, которые идут строго перед текущим Host
desc=""
hide=0
for(i=NR-1;i>0;i--){
if(i in comment_lines){
if(comment_lines[i] ~ /zssh-hide/) { hide=1; break }
desc = comment_lines[i] " " desc
} else break
}
# вывод предыдущего хоста
if(h!="" && hide_prev!=1){
printf "%-20s %-20s %-10s %-6s %-60s\n", h, hn, u, p, desc_prev
}
# новый хост
h=$2; hn=""; u=""; p=""
desc_prev=desc
hide_prev=hide
next
}
# ключи
if(match(line, /^[Hh]ost[Nn]ame[ \t]+(.*)$/, arr)) { hn=arr[1]; next }
if(match(line, /^User[ \t]+(.*)$/, arr)) { u=arr[1]; next }
if(match(line, /^Port[ \t]+(.*)$/, arr)) { p=arr[1]; next }
}
END {
# вывод последнего хоста
if(h!="" && hide_prev!=1){
printf "%-20s %-20s %-10s %-6s %-60s\n", h, hn, u, p, desc_prev
}
}
' ~/.ssh/config | fzf --height 40% --border)
host=$(echo "$host" | awk '{print $1}')
[[ -n "$host" ]] && ssh "$host"
}
Проверка результата:
zssh # появится список хостов для выбора
ssh srv1 # ручная проверка соединения
Совет:
Не хранить пароли в ~/.ssh/config, использовать ssh-agent или ключи.