PuTTYはセッション中にランダムな文字を挿入します


26

私は最近、プロジェクトに取り組むために、リモートサーバー上のスペースをレンタルし始めました。Windowsマシンで比較的簡単にアクセスするには、PuTTYを使用します。しかし、それを使用するときにいつも私を悩ませることが1つあります。一見、ランダムな文字がカーソルに挿入されることはないように思えます。

ほとんどの場合、これは単一のチルダですが、エスケープシーケンス([[^ 8など)のように見えるものを吐き出すことはめったにありません。入力中であろうと、キーボードから20フィート離れていようと、ウィンドウにフォーカスしている場合にのみ発生します。十分に長く放置すると、ランダムな間隔でチルダを吐き出します(平均は約1分です)。

最後に、nanoやmysqlインターフェースなどのプログラムを実行する場合、この動作は一貫していないようです。nanoでは、チルダを挿入する代わりに、マーク(ctrl- ^)を設定します。mysqlでは、行は編集できなくなります。

私の質問はこれです:他の誰かがPuTTYでこの種の動作を経験しましたか?もしそうなら、この動作を防止/修正するために何ができますか?


メモ帳など、ホストでランダムなプログラムを数時間開いたままにしておくと、コンピューターもこれを実行しますか?
cutrightjm 14年

@ekajいいえ、PuTTYのみです。唯一モバでSSHセッション中:MobaXterm(私はテストにポータブル版をダウンロードした)EDIT様およびaparantlyのPuTTYベースのプログラム
ザカリーPolikarpus

うーん。パテが完全にアイドル状態である間は常に55〜65秒のように、周期にあまり近いとは思いませんか 存在する場合は、サーバー側またはパテからの「キープアライブ」アクティビティである可能性があります。パテヘルプの「生きている」検索で見つかったものを見てください。たぶん、これらは役に立ちます。superuser.com/questions/94436/... unix.stackexchange.com/questions/6105/...
mgkrebbs

@mgkrebbs定期的に見えることもありますが、約5〜6分間発生しない場合があり、その後は定期的に見えるように戻ります。キープアライブのアイデアに関しては、その場合、ネイティブターミナルのLinuxマシンからsshセッションを開始する場合はすべてうまくいくため、クライアント側に分離されているようです。私は質問をしているときに最初のリンクを見て、端末タイプを「linux」に変更しようとしましたが、それは目立った違いをもたらさないようでした。
ザカリーポリカルプス14年

私もこの問題を経験しています。Putty、Kitty、さらにはMobaXtermを使用しているときに表示されます。
アッティラ

回答:


30

PuTTYでも同じ問題が発生し、スクリーンセーバーのアクティブ化を停止するために毎分F13キーを効果的に押す「カフェイン」と呼ばれるアプリケーションが原因であることがわかりました(グループポリシーによりスクリーンセーバーのタイムアウトを変更できません)私のマシン)。アプリケーションを無効にすると問題が解決しました。


2
当時カフェインをインストールしていました!今ではすべてが理にかなっています...ありがとうブルース!
ザカリーポリカルプス14年

3
Doh、私はそれを疑うべきだった。カフェインを殺すことはトリックをしました。PS:CaffeineとPuttyが連携して動作するようにするには、以下のソリューションを参照してください
-shreyansp

同じことをするサイネージアプリがありました。ターミナルには[28〜]が表示されました。
好奇心

12

PuttyとCaffeineを実行したい場合は、次の手順を実行します。

  1. カフェインを止める
  2. Caffeine readme.txtでシミュレートされたデフォルトのキーを確認します-私の F15
  3. Putty経由でリモート端末にログインします
  4. カフェインを開始します(ヒント:短い間隔(3秒など)でカフェインを開始します)。
  5. Puttyセッションに焦点を当てます。
  6. bashコマンドプロンプトでCtrl+V(これはキーの特別なコードを取得するために必要です。たとえば、にCtrl+V続けて試してくださいF12
  7. カフェインがキーをシミュレートするのを待ちます
  8. キーコードはコマンドラインに表示されます(たとえば、エスケープF15^[[28~どこに^[あります)。カフェインを止める
  9. これで、このキーを空白にバインドして、Caffeineがシミュレートするときにタイプしないようにすることができます ~
    • 編集~/.inputrc(存在しない場合は新しいファイルを作成)
    • 行を追加 "\e[28~":""
  10. カフェインを開始
  11. ターミナルセッションを再起動します
    • ~そのLinuxサーバーでPuttyターミナルを使用する場合、これ以上ランダムなものはないはずです。

+1。私はこの答えを以下に拡大しました(なぜこれが私にとって最適な答えではなかったのかについて説明します):)
ペトルザハリア

7

shreyanspの解決策が最も(しかし完全ではない)満足のいくものであることがわかりました:)
これを改善するための私の試みは(もちろんYMMV)です。これが解決策を探している人々に役立つことを願っています:)

私のソリューションは次のように動作します:

  • カフェインは、次の適切な仮想キーコードをWindowsに送信します。
    • Windowsがスリープ状態またはアイドル状態になるのを防ぎます
    • それ以外の場合、Windows上で単独でも組み合わせでも副作用を生成しません(Ctrl、Shift、Alt、Alt-Gr、Win、F1-F5、F10などはありません)
    • パテに送信されないか、パテに無視されます

TL; DR:私のソリューションは、ステップ2と3の間に適用されます(以下を参照)-key:0Eカフェインパラメーター:
カフェインを終了して、再起動します:(
caffeine.exe 5 -key:0E簡単なテストのため)
caffeine.exe 50 -key:0E(必須のスクリーンセーバーを1分に設定するため)

  • readリモートホストでプログラムを起動し、5〜50秒ごとにキーストロークが受信されないことを確認します。
  • 出口readCtrl+C

Shreyanspは、手順5と10の間に修正が適用されるソリューションを提案しました(以下を参照)。
その副作用(私の設定では)は、パテがカフェインからリモートホストに転送されるキーストロークごとに次のようになりました。

  • それは「キープレスでスクロールバーをリセットする」(Putty / Windowページで設定)
    をトリガーしましたが、これは通常は必要ですが、私(人間)がキーを押しているがカフェインで定期的にではありません:)
  • readline / bashの翻訳バージョン(from '"\e[28~"'から'""'(空白キー?)により、リモートセッションの対話が数秒間ハングしました。

上記を簡単にテストするには、Caffeineを終了し、5秒間隔とVirtual-Key Code 07で再起動します。
caffeine.exe 5 -key:07

  • readリモートホストでプログラムを起動し、5〜50秒ごとにキーストロークがどのように受信されるかを確認します。
  • 出口readCtrl+C

私が理解しているように、キーストローク「パイプライン」:

  1. CaffeineはWindowsに仮想キーコードを送信します
  2. Windowsはその仮想キーコードをPuttyに送信します
  3. Puttyは、以下のセッション設定に基づいて「翻訳」/「マッピング」を行います。
    • ターミナル/*
    • 窓/*
  4. Puttyは、「translated」/「mapped」キーコードをリモートホストに送信します
  5. リモート・ホスト上で、「端末」プログラム(例:$TERM=xtermvt100vt102vt220、など)をキーコードに「線プロトコル」から翻訳します。
  6. readlineライブラリは、に基づいていくつかの翻訳/マッピングを行います ~/.inputrc
  7. readlineはキーコードをbashに送信します
  8. bashは~/.bashrc(組み込みのbindコマンドに基づいて)に基づいていくつかの変換/マッピングを行います
  9. bashまたはreadline(どちらが不明か)が翻訳されたキーコードをnano(私のテキストエディター)に送信します
  10. screenプログラムを追加すると、このパイプラインはさらに長くなる可能性があります($TERM=screenforステップ5 が含まれ、ステップ6から10でループバックします)

注:手順4に到達すると、「翻訳」/「マッピング」のさまざまなレイヤーを正確に制御することが非常に難しくなります。できればそれを避けることをお勧めします。


背景:
caffeine.exe -key:07はpfsense 2.3.3-RELEASE-p1(FreeBSD 10.3-RELEASEに基づく)を扱う必要がある前に何年も使用していました。
その後、caffeine.exe -key:07反対側で受け取られた^[[28~... Ctrl+^はNanoの(Set Mark)にマッピングされているようです。
これは非常に面倒でした(メモ帳でテキストキャレットを移動しているときに誰かがShiftキーを押したままにすることを想像してください)。

以前、私は、パテセッティングに多くのカスタマイズをした~/.tcshrc~/.inputrc~/.bashrc~/.nanorc~/.screenrc私は基本的な機能(考えるものを手に入れるBackspaceDeleteHomeEndPgUpPgDownCtrl+LeftCtrl+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に、最後にArchに変更しました。私は同様の問題を経験していないため、WindowsがPuTTYと対話する方法に問題が分離されたと思われます。キー入力の原因については、あなたが提案したことが当てはまるとしても驚かないでしょうが、自動ハードウェア制御を使用したり、気づいたりしませんでした。これらのログがまだある場合は、投稿します。編集:他の誰かがこれを経験している場合、この情報を投稿することをお勧めします。
ザカリーポリカルプス

でジル答えも参照してくださいなぜパテが私のFedora bashシェルに〜を挿入する 1のみ表示される場合があります理由をうまく説明し、~実際に何かをするとき(およびbeebを聞いて)\e[3~送信されます。
アルジャン

(余談になりますが、最初はシングル~はエスケープシーケンスを示していないと考えたため、その投稿にリンクすることをお勧めします。)
Arjan

1

コマンドラインで-key:07オプションを使用してcaffieneを起動します。Puttyの問題を停止するようです。

これをbatファイルに入れるだけです

caffeine.exe -key:07


「caffiene.exe -key:07」も使用していますが、それは何年も役立ちました。しかし、私のpfSense(FreeBSDベース)に接続しているため、これは反対側で^ [[28〜...として受信されます。これは、NanoのCtrl + ^(Set Mark)にマップされているようです。これは非常に迷惑です(メモ帳でテキストキャレットを移動しているときに誰かがShiftキーを押したままにすることを想像してください)。:)カフェイン側で別のキーを見つけるか、FreeBSD側でカスタムマッピングを行います。(defs @ msdn.microsoft.com /en
Petru Zaharia

に切り替えましたcaffeine.exe -key:0E(以下の私の答えをご覧ください)。Windows(8.1 64ビット)で正常に動作しているようで、Puttyは喜んで無視します:)
Petru Zaharia

0

Ciscoフォーラムの誰かが、この問題を解決するためにコンソール速度パラメーターを変更することを提案しています。

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

1で述べたように、Puttyでコンソール速度のすべてのバリエーションを間違いなく試しましたか?

注:ボーレートがデフォルトレートとは異なるように設定されている場合、奇数文字がCLIに表示されます。チェックTABLE1異なるでconfreg値の設定ボーレートに。


1
コンソール速度はシリアル接続用です。彼はSSH接続について言及しています。SSHには「ターミナルスピード」設定がありますが、これが実際に問題を引き起こすのを見たことはありません。
ジャレッド14

0

私も同じ問題を抱えており、実際にcaffeine.exeが問題であることがわかりました。最初は、古いカフェで2年以上使用していたため、caffeine.exeが原因ではないと考えました。代わりにcaffeine.exe -useshiftを変更しようとしましたが、^ Cが送信されました。別のプログラム、Mouse Jigglerを見つけました。これはスクリーンセーバーを遠ざけますが、Puttyセッションでエスケープシーケンスを送信しません。


0

より良い解決策は、Caffineがパテセッションに干渉しないように、パテセッションの設定を構成することです。

[ターミナルキーボード]の下の[パテ]で[SCO]オプションを選択します。Terminal Bellの下のPuttyで、アクションをNoneに変更します(チャイムをオフにします)。

Caffineはパテセッションを気にすることなく、それを実行します。(パテセッション中にFnキーを使用しないので、Fnキーを使用したい場合はどうなるかわかりません)。


0

2017-09-20:ログオン時にトリガーされるタスクスケジューラで«caffeine.exe -useshift -noicon»を使用してカフェインを開始することにより、文字の挿入を解決しました。アイコンはありません。mintty/ bashセッションで文字が挿入されることはありません。それはとても面倒でした。あなたのヒントをありがとう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.