Почему некоторые ssh сессии предлагают автоматическое заполнение и некоторых нет?

Изучите Представление VMware. Они работают над версией 4, которая должна значительно улучшить производительность. Я смотрю на этот продукт для небольшого количества рабочих столов.

Также Windows Server 2008 R2 имеет некоторые новые функции VDI для взгляда на.

8
задан 29 October 2010 в 21:16
4 ответа

Это не действительно вопрос о программировании, но он имеет отношение к Вашей оболочке. Можно попытаться запуститься bash оболочка (путем ввода bash при подсказке), и видят, можно ли автоматически заполнить.

Если это работает, можно использовать which bash для проверки это - местоположение и затем chsh -s /bin/bash установить Вашу оболочку постоянно.

Список доступных оболочек может также быть найден в /etc/shells.

15
ответ дан 2 December 2019 в 22:45

Это - комбинация оболочки, которая используется на Вашей ssh сессии, а также это - конфигурация.

В то время как Ваша оболочка может поддерживать автозавершение, это не может быть настроено для него. При использовании оболочки удара можно отредактировать локальный .bashrc файл для следующего для обеспечения автоматического заполнения.

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi
3
ответ дан 2 December 2019 в 22:45
  • 1
    Пакет завершения удара только необходим для более усовершенствованного завершения вещей как параметры командной строки, имена серверов, каталоги репозитория VCS.... Завершение команд, каталогов, имен файлов, переменных и имен пользователей работает без него. –  ak2 30 October 2010 в 11:52

IIRC это могла также быть проблема, что ssh хеширует имена хостов в ~/.ssh/known_hosts

большинство установок я знаю использование ~/.ssh/known_hosts как источник для списка доступных хостов к завершению, но некоторые системы также начали устанавливать "HashKnownHosts да", который запрещает использование known_hosts как источник....

если Ваши известные строки хостов запускаются с чего-то как

|1|BWO5qDxk/cFH0wa05JLdHn+j6xQ=|rXQvIxh5cDD3C4

затем хеширование активируется.

1
ответ дан 2 December 2019 в 22:45

Скопировано из моего собственного ответа на unix.SE :

Похоже, что именно в Ubuntu записи в ~ / .ssh / known_hosts хешируются , поэтому завершение SSH не может их прочитать. Это особенность, а не ошибка. Даже добавив HashKnownHosts no в ~ / .ssh / config и / etc / ssh / 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

Я нашел это руководство бесценно, и я бы не смог написать его без него. Спасибо Стиву Кемпу за то, что написал это потрясающее руководство!

2
ответ дан 2 December 2019 в 22:45

Теги

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