Как к завершению команды редактирования для ssh на ударе?

Насколько я знаю, что это не делает. Технология Bluetooth нацелена на потребительский конец, не конец "предприятия".

Вы могли установить Сервер 2 008 R2 как VM вместо этого, затем он не будет иметь значения. Вы также смогли бы взять и вернуться снимок Вашего сервера, который, вероятно, будет довольно полезен для dev среды.

4
задан 13 April 2017 в 15:14
5 ответов

Я записал этим двум руководствам части только что:

http://www.debian-administration.org/article/316/An_introduction_to_bash_completion_part_1

http://www.debian-administration.org/article/317/An_introduction_to_bash_completion_part_2

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

3
ответ дан 3 December 2019 в 02:47

Эта функциональность уже обеспечивается завершением удара. Фактический файл, если Вы хотите отредактировать его функциональность, является/etc/bash_completion.d/ssh.

Это обеспечивается завершением удара пакета.

При вводе ssh <ВКЛАДКА> это перечислит все хосты в/etc/hosts и ~/.ssh/config в одном списке.

Если Вам указали Пользователя для данного хоста, Вы не должны указывать это при использовании ssh.

Таким образом, если Вы хотите к ssh к серверу brandon

Введите ssh br <ВКЛАДКА>, и это должно автоматически заполнить слово brandon, пока тот хост находится или в/etc/hosts или в ~/.ssh/config.

2
ответ дан 3 December 2019 в 02:47

Это - то, что я имею в моем .bashrc для ssh завершения имени хоста:

SSH_COMPLETE=( $(cut -f1 -d' ' ~/.ssh/known_hosts |\
                 tr ',' '\n' |\
                 sort -u |\
                 grep -e '[:alpha:]') )
complete -o default -W "${SSH_COMPLETE[*]}" ssh
2
ответ дан 3 December 2019 в 02:47

Если у вас Mac, вы можете использовать Homebrew для установки bash-Completion:

brew install bash-Completion

Добавьте в ~ / .bash_profile

if [ -f /usr/local/etc/bash_completion ]; then
. /usr/local/etc/bash_completion
fi

Если вы установили завершение bash с MacPorts, добавьте его в bash_profile

if [ -f /opt/local/etc/bash_completion ]; then
. /opt/local/etc/bash_completion
fi

Теперь у вас есть пакет / функциональность, о которых говорил Ричард Холлоуэй.

1
ответ дан 3 December 2019 в 02:47

Если вы находитесь на машине Ubuntu Server, то вы должны знать, что в Ubuntu ~/.ssh/known_hosts записи в ~/.ssh/known_hosts хэшируются, поэтому завершение SSH не может прочитать их. Канонические девы считают это особенностью, а не ошибкой. Даже добавив HashKnownHosts no к ~/...ssh/known_hosts хэшируются, поэтому завершение SSH не может прочитать их. ssh/config и /etc/ssh/ssh_config мне не удалось предотвратить хэширование хоста.

Однако, вы можете прочитать сконфигурированные записи из ~/.ssh/config, которые не хэшируются. Основываясь на ~/.ssh/config, ссылки из Ответ Стива Кемпа, вот скрипт для Bash Completion, который читает записи из этого файла:

_ssh() 
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    opts=$(grep '^Host' ~/.ssh/config | awk '{print $2}')

    COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
    return 0
}
complete -F _ssh ssh

Поместите этот скрипт в /etc/bash_completion.d/ssh, а затем отправьте его следующей командой:

$ . /etc/bash_completion.d/ssh
1
ответ дан 3 December 2019 в 02:47

Теги

Похожие вопросы