Недавно я начал арендовать место на удаленном сервере, чтобы я мог работать над проектом. Я обнаружил, что относительно безболезненный способ получить доступ к нему на Windows-машине через PuTTY. Тем не менее, есть одна вещь, которая всегда раздражала меня при ее использовании: по-видимому, без причины случайные символы иногда вставляются в курсор.
В большинстве случаев это всего лишь одна тильда, но редко она выплевывает то, что похоже на некоторую escape-последовательность ([[^ 8 или подобное). Это произойдет только тогда, когда я сфокусирован на окне, печатаю ли я или на расстоянии 20 футов от клавиатуры. Если оставить его достаточно долго, он будет плевать тильды через случайные интервалы (в среднем около 1 минуты).
Наконец, это поведение кажется несовместимым при запуске таких программ, как nano или интерфейс mysql: в nano вместо вставки тильд он будет устанавливать метки (ctrl- ^); в mysql строки станут недоступны для редактирования.
У меня такой вопрос: кто-нибудь еще испытывал подобное поведение в PuTTY? И если так, что можно сделать, чтобы предотвратить / исправить это поведение?
Ответы:
У меня была та же проблема с PuTTY, и я обнаружил, что это вызвано приложением, которое я назвал «кофеин», которое эффективно нажимает клавишу F13 каждую минуту, чтобы остановить активацию заставки (групповые политики не позволяют мне изменить время ожидания заставки на моя машина). Отключение приложения решило проблему.
источник
Если вы предпочитаете использовать замазку и кофеин, выполните следующие действия:
F15
Ctrl+V
(Это необходимо , чтобы получить специальный код для ключа. , Например , попытайтесьCtrl+V
затемF12
)F15
есть^[[28~
, где^[
есть побег). Стоп Кофеин~
~/.inputrc
(создать новый файл, если он не существует)"\e[28~":""
~
При использовании терминала Putty с этим сервером Linux больше не должно быть никаких случайностей.источник
Я нашел решение shreyansp наиболее (но не вполне) удовлетворительным :)
Вот моя попытка улучшить его (конечно же, YMMV). Надеюсь, что это может быть полезно для тех, кто ищет решение :)
Мое решение ведет себя следующим образом:
TL; DR: мое решение применяется между шагами 2 и 3 (см. Ниже) с параметром
-key:0E
кофеина:выйдите из кофеина и перезапустите его с помощью:
caffeine.exe 5 -key:0E
(для простого тестирования)caffeine.exe 50 -key:0E
(для обязательной заставки, установленной на 1 минуту)read
программу на удаленном хосте и следите за тем, как не принимаются нажатия клавиш каждые 5 или 50 секунд.read
сCtrl+C
Шреянсп предложил решение, в котором исправление будет применено между шагами 5 и 10 (см. Ниже).
Побочным эффектом этого (на моем конфиге) было то, что при каждом нажатии клавиши эта замазка пересылалась с кофеина на удаленный хост:
которую я обычно хотел бы, но только когда я (человек) нажимаю клавишу, но не регулярно кофеином :)
'"\e[28~"'
to'""'
(пустой ключ?) привела к зависанию взаимодействия удаленного сеанса на несколько секундЧтобы легко проверить вышеупомянутое, выйдите из Caffeine и перезапустите его с 5-секундным интервалом и кодом виртуального ключа 07:
caffeine.exe 5 -key:07
read
программу на удаленном хосте и наблюдайте, как нажатия клавиш принимаются каждые 5 или 50 секунд.read
сCtrl+C
Клавиша «трубопровод», насколько я понимаю:
$TERM=xterm
,vt100
,vt102
,vt220
и т.д.) переводится из «протокола линии» в ключевые коды.~/.inputrc
~/.bashrc
(на основе встроенной команды bind)screen
программу (которая включает в себя$TERM=screen
этап 5 и снова выполнить цикл на этапах 6–10).Примечание. После перехода к шагу 4. становится очень трудно точно контролировать различные уровни «переводов» / «отображений». Я бы порекомендовал избегать этого, если вы можете.
Предыстория:
я
caffeine.exe -key:07
годами пользовался, прежде чем иметь дело с pfsense 2.3.3-RELEASE-p1 (основан на FreeBSD 10.3-RELEASE).Затем
caffeine.exe -key:07
был получен на другой стороне как^[[28~
... который, кажется, сопоставлен сCtrl+^
(Set Mark) в Nano.Это было довольно неприятно (представьте, что кто-то нажимает и удерживает клавишу Shift, когда вы перемещаете текстовую рамку в Блокноте).
Раньше я делал многочисленные настройки в Putty Настройки,
~/.tcshrc
,~/.inputrc
,~/.bashrc
,~/.nanorc
,~/.screenrc
чтобы получить то , что я считаю базовую функциональность (Backspace
,Delete
,Home
,End
,PgUp
,PgDown
,Ctrl+Left
,Ctrl+Right
, Numpad0-9
, Numpad./*-+
) работает последовательно между Баш / нано / экран.Как только я обнаружил эту
caffeine.exe -key:07
«ошибку», я не захотел повторять это снова :)Протестировано на:
Windows 8.1 64-bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (на основе FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Ссылки:
Кофеин:
Undefined
код, который подходит для вашей настройки)Readline / inputrc / bash / bashrc / (встроенный) bind:
Шпатлевка:
источник
Это действительно выглядит как escape-последовательность или управляющий символ, который может объяснить, почему вы не видите ее в других программах, таких как блокнот.
Я не совсем уверен, какие клавиши нужно нажимать, чтобы получить этот вывод, но я немного поиграюсь и попытаюсь выяснить. Можете ли вы назвать любую другую показанную последовательность? Поведение mysql и nano может быть просто еще одной интерпретацией escape-последовательностей, которые, кажется, вводятся.
Наконец, вопрос в том, что вызывает эти ключевые входные данные. Вы случайно не используете ноутбук, который, например, автоматически управляет подсветкой с помощью какого-то проприетарного программного обеспечения? Я видел какое-то странное предустановленное программное обеспечение, которое эмулирует нажатия клавиш вместо использования API. Возможно, вы захотите использовать что-то вроде inputlog для себя.
источник
~
(и услышать биб) только когда действительно\e[3~
отправлено что-то подобное .~
будет указывать на escape-последовательность.)Я использую опцию -key: 07 в командной строке, чтобы запустить кофеин. Кажется, чтобы решить проблему Putty.
Просто поместите это в файл летучей мыши
caffeine.exe -ключ: 07
источник
caffeine.exe -key:0E
(см. Мой ответ ниже). Кажется, хорошо работает с Windows (8.1 64-разрядная версия), и Putty радостно игнорирует это :)Кто-то на форумах Cisco предлагает изменить параметр скорости консоли, чтобы решить эту проблему.
http://www.dslreports.com/forum/r27090677-HELP-Cisco-1800-garbled-output-in-putty
Вы определенно перепробовали все варианты скорости консоли в Putty, как упомянуто в 1 ?
Примечание. Если скорость передачи данных отличается от скорости по умолчанию, в CLI отображаются нечетные символы. Проверьте таблицу 1, чтобы установить скорость передачи для различных значений Confreg.
источник
У меня тоже была такая же проблема, и я обнаружил, что проблема действительно в caffeine.exe. Сначала я думал, что это не может быть вызвано caffeine.exe, потому что я использовал это в течение 2 лет на моем старом ноутбуке. Вместо этого я попытался изменить caffeine.exe -useshift, но это послало ^ C. Нашел другую программу, Mouse Jiggler, которая хранит экранную заставку, но больше не отправляет последовательности Escape в моих сессиях Putty.
источник
Лучшее решение - настроить параметры сеанса замазки, чтобы Caffine не мешал ему.
В Putty под Terminal Keyboard выберите опцию SCO. В Putty под Terminal Bell измените действие на None (чтобы отключить перезвон).
Кофеин все равно сделает это и не будет беспокоить вас. (Я не использую клавиши Fn во время сеанса замазки, поэтому я не знаю, что произойдет, если вы захотите использовать клавиши Fn).
источник
2017-09-20: Решена инъекция угля, запустив кофеин с помощью «caffeine.exe -useshift -noicon» в планировщике задач, который запускается при входе в систему. Нет иконки, больше не вводятся символы в моих сеансах mint / bash. Это было так сильно раздражает. Спасибо всем за ваши советы.
источник