Автодополнение ssh хостов

Автодополнение хостов ssh — это благо, особенно, когда их набивается достаточно много. Одной из хороших подсказок является создание файла ~/.ssh/config с примерно таким содержанием:


Host        myhost      # Имя хоста
HostName    server.com  # Это удаленнй хост
User        username    # Пользователь на удаленном хосте
Port        22222       # Номер порта

Этот файл является очень хорошим подспорьем, особенно если вы устроили коннект по ключу. Тогда запоминать надо только пароль от ключа и имя хоста из нашего конфига. Но иногда и этого бывает не достаточно. Точнее уже бывает лень набирать даже ssh myhost и хочется автодополнения. На этот случай можно поискать в интернетах скрипты bash ssh autocompletion, но они все опираются на файлик known_hosts, а мне хотелось бы чтобы автодополнение шло по именам из конфига. Нет ничего проще. Стоит добавить пару строк к себе в ~/.bashrc или ~/.profile:


# SSH Auto Completion of Remote Hosts
complete -W "$(echo `cat ~/.ssh/config | grep '^Host ' | colrm 1 5`)" ssh

Реклама

%d такие блоггеры, как: