PuTTY는 세션 중에 임의의 문자를 삽입합니다


26

최근에 프로젝트 작업을 할 수 있도록 원격 서버에서 공간을 임대하기 시작했습니다. Windows 컴퓨터에서 비교적 쉽게 액세스 할 수있는 방법은 PuTTY를 통한 것입니다. 그러나 그것을 사용할 때 항상 나를 괴롭힌 한 가지가 있습니다. 왜냐하면 임의의 문자가 때로는 커서에 삽입되는 이유가 없기 때문입니다.

대부분의 경우 단일 물결표이지만 이스케이프 시퀀스 ([[^ 8 등)처럼 보이는 것은 거의 없습니다. 키보드를 타이핑하거나 20 피트 떨어져 있는지 여부에 관계없이 창에 집중할 때만 발생합니다. 오랫동안 방치하면 임의 간격으로 물결표가 뱉어집니다 (평균은 약 1 분).

마지막으로 nano 또는 mysql 인터페이스와 같은 프로그램을 실행할 때이 동작이 일치하지 않는 것 같습니다. nano에서는 물결표를 삽입하는 대신 마크 (ctrl- ^)를 설정합니다. mysql에서 줄은 편집 할 수 없게됩니다.

내 질문은 이것입니다 : 다른 사람이 PuTTY에서 이런 종류의 행동을 경험 했습니까? 그렇다면이 동작을 방지 / 수정하기 위해 무엇을 할 수 있습니까?


메모장과 같이 몇 시간 동안 호스트에서 임의의 프로그램을 열어두면 컴퓨터에서이 작업을 수행합니까?
cutrightjm

@ekaj 아니요, PuTTY에서만 가능합니다. 그리고 MobaXterm (테스트 용 포터블 버전을 다운로드했습니다)과 같은 PuTTY 기반 프로그램 편집 : Moba의 SSH 세션 중
Zachary Polikarpus

흠. 퍼티가 완전히 유휴 상태 인 동안 항상 55-65 초와 같이 주기적에 가깝지 않습니까? 이 경우 서버 쪽 또는 퍼티에서 "keep-alive"활동 일 수 있습니다. 퍼티 도움말의 "살아있는"검색에서 찾은 것을 살펴보십시오. 아마 이것들이 도움이 될 것입니다 : superuser.com/questions/94436/… unix.stackexchange.com/questions/6105/…
mgkrebbs

@mgkrebbs 때때로주기적인 것처럼 보이지만 때때로 5-6 분 정도 발생하지 않는 경우가 있습니다. keep-alive 아이디어에 관해서는, 그것이 사실이라면 클라이언트 측과 격리 된 것처럼 보입니다. 기본 터미널의 Linux 컴퓨터에서 ssh 세션을 시작하면 모든 것이 잘됩니다. 나는 질문을 할 때 첫 번째 링크를 보았고 터미널 유형을 "linux"로 변경하려고 시도했지만 눈에 띄는 차이는 없었습니다.
Zachary Polikarpus

이 문제도 발생했습니다. 퍼티, 키티, 심지어 MobaXterm을 사용할 때 나타납니다.
Attilah

답변:


30

PuTTY와 동일한 문제가 발생하여 매분마다 F13 키를 효과적으로 눌러 화면 보호기의 활성화를 중지시키는 "카페인"이라는 응용 프로그램으로 인해 발생한 것으로 나타났습니다 (그룹 정책으로 인해 화면 보호기 시간 초과가 변경되지 않음) 내 기계). 응용 프로그램을 비활성화하면 문제가 해결되었습니다.


2
그 당시에는 카페인을 설치했습니다! 이제 다 이해가되었습니다 ... 고마워 브루스!
Zachary Polikarpus 2018 년

3
도, 의심 했어야했는데 카페인을 죽이는 것이 속임수였습니다. 추신 : 카페인과 퍼티가 함께 일할 수 있도록 아래 솔루션을 참조하십시오
shreyansp

나는 같은 일을하는 간판 앱을 가지고있었습니다. [28 ~가 터미널에 나타났습니다.
호기심 마음

12

퍼티 및 카페인을 실행하려면 다음 단계를 따르십시오.

  1. 카페인 중지
  2. Caffeine readme.txt에서 기본 키 시뮬레이션을 확인하십시오. F15
  3. 퍼티를 통해 원격 터미널에 로그인
  4. 카페인 시작 (팁 : 짧은 간격 (예 : 3 초)으로 카페인 시작)
  5. 퍼티 세션에 집중하십시오.
  6. bash 명령 프롬프트에서 Ctrl+V(키에 대한 특수 코드를 얻는 데 필요합니다. 예 : try Ctrl+V다음에옵니다 F12)
  7. 카페인이 키를 시뮬레이션 할 때까지 기다리십시오.
  8. 키 코드 (예를 들어, 명령 줄에 표시 될 것 F15입니다 ^[[28~경우, ^[탈출이다). 카페인 중지
  9. 이제이 키를 공란에 묶어 카페인이 시뮬레이트 할 때 입력하지 않도록 할 수 있습니다 ~
    • 편집 ~/.inputrc(없는 경우 새 파일 만들기)
    • 라인을 추가 "\e[28~":""
  10. 카페인 시작
  11. 터미널 세션을 다시 시작하십시오
    • ~해당 Linux 서버에서 Putty 터미널을 사용할 때 더 이상 무작위가 없어야 합니다.

+1. 나는 :) (이 나를 위해 최적의 응답되지 않은 이유에 대한 설명과) 아래의이 대답에 확장 한
페 트루 Zaharia

7

나는 shreyansp 의 솔루션이 가장 만족 스럽지만 가장 만족스럽지 않다는 것을 알았습니다. :)
그것을 개선하려는 시도는 물론입니다 (물론 YMMV). 이것이 해결책을 찾는 사람들에게 유용 할 수 있기를 바랍니다 :)

내 솔루션은 다음과 같이 작동합니다.

  • 카페인은 다음과 같은 적절한 가상 키 코드를 Windows로 보냅니다.
    • Windows가 절전 모드 또는 유휴 상태가되지 않도록 방지
    • Windows에서 단독으로 또는 조합하여 부작용을 발생시키지 않습니다 (Ctrl, Shift, Alt, Alt-Gr, Win, F1-F5, F10 등).
    • 퍼티에게 보내지 않거나 퍼티에 의해 무시됩니다

TL; DR : 내 솔루션은 -key:0E카페인 매개 변수를 사용하여 2 단계와 3 단계 (아래 참조) 사이에 적용됩니다. 카페인을
종료하고 다음과 같이 다시 시작하십시오.
caffeine.exe 5 -key:0E(쉬운 테스트를
caffeine.exe 50 -key:0E위해)

  • read원격 호스트에서 프로그램을 시작 하고 5 초 또는 50 초마다 키 입력이 수신되지 않는지 확인하십시오.
  • 종료 readCtrl+C

Shreyansp 는 5 단계와 10 단계 사이에 수정 사항이 적용되는 솔루션을 제안했습니다 (아래 참조).
그것의 부작용 (내 구성에서)은 퍼티가 카페인에서 원격 호스트로 전달되는 각 키 입력으로 다음과 같습니다.


  • 일반적으로 원하는 '키 누름시 스크롤 막대 재설정'(퍼티 / 창 페이지에서 설정)을 트리거 했지만 (인간이) 키를 눌렀을 때만 카페인이 정기적으로하지 않습니다. :)
  • 작성한 Readline / bash가 그것 (버전 번역 '"\e[28~"''""'(빈 키?) 발생 몇 초 동안 정지하는 원격 세션의 상호 작용

위의 테스트를 쉽게 수행하려면 Caffeine을 종료하고 5 초 간격으로 Virtual-Key Code 07으로 다시 시작하십시오.
caffeine.exe 5 -key:07

  • read원격 호스트에서 프로그램을 시작 하고 5 초 또는 50 초마다 키 입력을받는 방법을 확인하십시오.
  • 종료 readCtrl+C

내가 이해 한 키 스트로크 '파이프 라인':

  1. 카페인은 가상 키 코드를 Windows로 보냅니다
  2. Windows는 가상 키 코드를 Putty에 보냅니다.
  3. 퍼티는 다음의 일부 세션 설정에 따라 일부 '번역'/ '매핑'을 수행합니다.
    • 단말기/*
    • 창문/*
  4. Putty는 '번역 된'/ '매핑 된'키 코드를 원격 호스트로 보냅니다.
  5. 원격 호스트에, '단말기'프로그램 (예 : $TERM=xterm, vt100, vt102, vt220, 등)을 키 코드로 '선 프로토콜'로 변환한다.
  6. readline 라이브러리는 다음을 기반으로 일부 번역 / 매핑을 수행합니다. ~/.inputrc
  7. readline은 키 코드를 bash로 보냅니다.
  8. bash는 ~/.bashrc(내장 바인드 명령을 기반으로) 일부 번역 / 매핑을 수행합니다.
  9. bash 또는 readline (어떤 것이 확실하지 않은지)은 번역 된 키 코드를 nano (내 텍스트 편집기)로 보냅니다.
  10. 이 파이프 라인은 screen프로그램 을 추가하여 더 길어질 수 있습니다 ( $TERM=screen5 단계 에 대한 포함 및 6 단계에서 10으로 다시 루프).

참고 : 4 단계에 도달하면 '번역'/ '매핑'의 여러 계층을 정확하게 제어하기가 매우 어려워집니다. 가능하다면 피하는 것이 좋습니다.


배경 : pfsense 2.3.3-RELEASE-p1 (FreeBSD 10.3-RELEASE 기반)을 다루기 전에 몇 년 동안
사용 caffeine.exe -key:07했습니다.
그런 다음, caffeine.exe -key:07같은 다른면에 수신 ^[[28~에 매핑 될 것으로 보인다 ... Ctrl+^나노에서 (설정 마크).
이것은 매우 성가신 일이었습니다 (메모장에서 텍스트 캐럿을 움직일 때 Shift 키를 누르고 유지하는 사람을 상상해보십시오).

이전에, 내가 퍼티 설정에서 다수의 사용자 정의를했다, ~/.tcshrc, ~/.inputrc, ~/.bashrc, ~/.nanorc, ~/.screenrc나는 기본 기능을 고려할 것을 얻을 ( Backspace, Delete, Home, End, PgUp, PgDown, Ctrl+Left, Ctrl+Right, 숫자 키패드 0-9, 숫자 패드 ./*-+) bash는 / 나노 / 화면 사이에 지속적으로 노력.

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


참고 문헌 :


1

이것은 실제로 이스케이프 시퀀스 또는 제어 문자처럼 보이므로 메모장과 같은 다른 프로그램에서 보이지 않는 이유를 설명 할 수 있습니다.

이 출력을 얻으려면 어떤 키를 눌러야하는지 잘 모르겠지만 조금 놀아서 찾아보십시오. 표시된 다른 시퀀스의 이름을 지정할 수 있습니까? mysql과 nano의 동작은 입력 된 것처럼 보이는 이스케이프 시퀀스의 또 다른 해석 일 수 있습니다.

마지막으로, 이러한 주요 입력의 원인은 무엇입니까? 우연히 독점 소프트웨어를 사용하여 백라이트를 자동으로 제어하는 ​​랩톱을 사용하십니까? 나는 API를 사용하는 대신 실제로 키 누르기를 에뮬레이트하는 이상한 사전 설치된 소프트웨어를 보았습니다. inputlog와 같은 것을 직접 사용하고 싶을 수도 있습니다.


이후 운영 체제를 변경하여 이중 Win-8.1 및 Ubuntu를 Ubuntu로만 변경 한 다음 Mint로, 마지막으로 아치로 변경했습니다. 비슷한 문제가 발생하지 않았으므로 Windows가 PuTTY와 상호 작용하는 방식으로 문제가 분리되었다고 생각합니다. 키 입력의 원인에 관해서는, 당신이 제안한 것이 사실이라면 놀라지 않을 것이지만, 자동 하드웨어 제어를 사용하거나 알아 차리지 못했습니다. 그래도 로그가 있으면 게시 할 수 있습니다. 편집 : 다른 사람 이이 문제가 발생하면이 정보를 게시하는 것이 좋습니다.
Zachary Polikarpus 16:14에

또한의 질 '대답을 참조하십시오 내 페도라 bash 쉘에 왜 퍼티 삽입 ~을 하나 만 표시 될 수 있습니다 이유를 잘 설명하고, ~실제로 뭔가 같은 때 (그리고 beeb을들을) \e[3~전송됩니다.
Arjan

(여담으로 : 하나는보고 생각 첫번째 I에서 당신은, 해당 게시물 링크 할 수 있습니다 ~없는 이스케이프 시퀀스를 나타냅니다.)
Arjan

1

명령 행에서 -key : 07 옵션을 사용하여 caffiene을 시작합니다. Putty 문제를 중지하는 것으로 보입니다.

이것을 박쥐 파일에 넣으십시오.

caffeine.exe-키 : 07


나는 'caffiene.exe -key : 07'을 사용하고 수년 동안 나에게 잘 봉사했습니다. 그러나 내 pfSense (FreeBSD 기반)에 연결 한 이후 이것은 ^ [[28 ~ ...으로 Nano의 Ctrl + ^ (Set Mark)에 매핑 된 것처럼 보입니다). 이것은 매우 성가신 일입니다 (메모장에서 텍스트 캐럿을 움직일 때 Shift 키를 누르고 유지하는 사람을 상상해보십시오). :) 카페인 쪽에서 다른 키를 찾거나 FreeBSD 쪽에서 사용자 정의 매핑을 수행합니다. (defs @ msdn.microsoft.com/en-us/library/windows/desktop/… 참조 )
Petru Zaharia

로 전환했습니다 caffeine.exe -key:0E(아래 답변 참조). Windows (8.1 64 비트)에서 잘 작동하는 것으로 보이며 퍼티는이를 무시합니다. :
Petru Zaharia

0

Cisco 포럼의 누군가는이 문제를 해결하기 위해 콘솔 속도 매개 변수를 변경할 것을 제안합니다.

http://www.dslreports.com/forum/r27090677-HELP-Cisco-1800-garbled-output-in-putty

1 에서 언급했듯이 퍼티의 모든 콘솔 속도 변형을 확실히 시도 했습니까?

참고 : 전송 속도가 기본 속도와 다르게 설정된 경우 CLI에 홀수 문자가 표시됩니다. 다른 Confreg 값에 대한 전송 속도를 설정하려면 table1 을 확인하십시오 .


1
콘솔 속도는 직렬 연결입니다. 그는 SSH 연결을 언급하고 있습니다. SSH에는 "터미널 속도"설정이 있지만 실제로이 문제가 발생하는 것을 본 적이 없습니다.
Jared

0

나는 또한 같은 문제가 있었고 caffeine.exe가 실제로 문제라는 것을 알았습니다. 처음에는 오래된 랩톱에서 2 년 이상 사용했기 때문에 caffeine.exe로 인해 발생할 수 없다고 생각했습니다. 대신 caffeine.exe -useshift를 변경하려고했지만 ^ C를 보냈습니다. 화면 보호기를 유지하지만 더 이상 퍼티 세션에서 이스케이프 시퀀스를 보내지 않는 또 다른 프로그램 인 Mouse Jiggler를 찾았습니다.


0

더 나은 해결책은 퍼티 세션의 설정을 구성하여 Caffine이 간섭하지 않도록하는 것입니다.

터미널 키보드 아래 퍼티에서 SCO 옵션을 선택하십시오. 터미널 벨 아래 퍼티에서 동작을 없음으로 변경합니다 (차임을 끄려면).

Caffine은 여전히 ​​그것을하고 퍼티 세션을 방해하지 않습니다. (나는 퍼티 세션 중에 Fn 키를 사용하지 않으므로 Fn 키를 사용하려는 경우 어떤 일이 발생하는지 알 수 없습니다).


0

2017-09-20 : 로그온시 트리거 된 작업 스케줄러에서«caffeine.exe -useshift -noicon»으로 카페인을 시작하여 숯 주입을 해결했습니다. 내 박하 / 강타 세션에서 아이콘이없고 더 이상 문자가 주입되지 않았습니다. 너무 귀찮았습니다. 힌트를 주신 모든 분들께 감사드립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.