Putty memasukkan karakter acak selama sesi


26

Saya baru-baru ini mulai menyewa ruang di server jauh sehingga saya dapat bekerja pada suatu proyek. Saya menemukan bahwa cara yang relatif tidak menyakitkan untuk mengaksesnya pada mesin windows adalah melalui Putty. Namun, ada satu hal yang selalu membuatku jengkel ketika menggunakannya: karena tampaknya tidak ada alasan karakter acak kadang-kadang dimasukkan pada kursor.

Sebagian besar waktu itu hanya tilde tunggal, tetapi jarang memuntahkan apa yang tampak seperti beberapa urutan melarikan diri ([[8 atau 8 sejenisnya). Itu hanya akan terjadi ketika saya fokus pada jendela, apakah saya mengetik atau 20 kaki dari keyboard. Jika dibiarkan cukup lama, itu akan meludahkan gelombang secara acak (rata-rata sekitar 1 menit).

Akhirnya, perilaku ini tampaknya tidak konsisten ketika menjalankan program seperti nano atau antarmuka mysql: di nano, alih-alih menyisipkan tildes, ia akan menetapkan tanda (ctrl- ^); di mysql, baris akan menjadi tidak dapat diedit.

Pertanyaan saya adalah ini: Apakah ada orang lain yang mengalami perilaku semacam ini di Putty? Dan jika demikian, apa yang dapat dilakukan untuk mencegah / memperbaiki perilaku ini?


Apakah komputer Anda juga melakukan ini jika Anda membiarkan program terbuka di host Anda selama beberapa jam, seperti notepad?
cutrightjm

@ekaj Tidak, hanya di Putty. Dan program berbasis Putty seperti MobaXterm (saya mengunduh versi portabel untuk menguji) EDIT: hanya selama sesi SSH di Moba
Zachary Polikarpus

Hmm. Apakah Anda yakin itu tidak cukup dekat dengan berkala, seperti selalu 55-65 detik saat dempul sepenuhnya menganggur? Jika ya, itu mungkin aktivitas "tetap hidup", baik dari server atau dempul. Lihatlah hal-hal yang ditemukan dalam pencarian "hidup" dalam bantuan dempul. Mungkin ini akan membantu: superuser.com/questions/94436/… unix.stackexchange.com/questions/6105/…
mgkrebbs

@mgkrebbs Kadang-kadang tampaknya berkala, tetapi kadang-kadang tidak akan terjadi selama sekitar 5 hingga 6 menit, lalu kembali lagi ke yang tampak berkala. Mengenai ide keep-hidup, jika itu yang terjadi, Tampaknya terisolasi ke sisi klien karena jika saya memulai sesi ssh dari mesin linux di terminal asli, semuanya baik-baik saja. Saya memang melihat tautan pertama itu ketika mengajukan pertanyaan, dan mencoba mengubah tipe terminal menjadi "linux", tetapi itu tampaknya tidak membuat perbedaan yang nyata.
Zachary Polikarpus

Saya juga pernah mengalami masalah ini. Itu muncul ketika saya menggunakan Putty, Kitty dan bahkan MobaXterm.
Attilah

Jawaban:


30

Saya memiliki masalah yang sama dengan Putty dan menemukan bahwa itu disebabkan oleh aplikasi yang saya sebut "caffeine" yang secara efektif menekan tombol F13 setiap menit untuk menghentikan screen saver agar tidak diaktifkan (kebijakan grup mencegah saya mengubah batas waktu screen saver pada mesin saya). Menonaktifkan aplikasi memecahkan masalah saya.


2
Saya memang sudah menginstal kafein saat itu! Semuanya masuk akal sekarang ... Terima kasih Bruce!
Zachary Polikarpus

3
Doh, aku seharusnya curiga. Membunuh Kafein berhasil. PS: Lihat solusi saya di bawah ini agar Caffeine dan Putty bekerja bersama
shreyansp

Saya memiliki aplikasi papan nama yang melakukan hal yang sama. Beberapa [28 ~ muncul di Terminal.
Curious Mind

12

Jika Anda lebih suka menjalankan Putty dan Kafein, ikuti langkah-langkah berikut:

  1. Hentikan Kafein
  2. Periksa Caffeine readme.txt untuk kunci default yang disimulasikan - milik saya F15
  3. Login ke terminal jarak jauh Anda melalui Putty
  4. Mulai Kafein (Kiat: mulai Kafein dengan interval pendek mis 3 detik).
  5. Bawa sesi Putty dalam fokus.
  6. Pada bash command prompt Anda tekan Ctrl+V(Ini diperlukan untuk mendapatkan kode khusus untuk kunci. Mis. Coba Ctrl+Vdiikuti oleh F12)
  7. Tunggu Kafein untuk mensimulasikan kunci
  8. Kode kunci akan ditampilkan pada baris perintah (misalnya F15adalah ^[[28~, di mana ^[adalah melarikan diri). Hentikan Kafein
  9. Sekarang Anda dapat mengikat kunci ini menjadi kosong sehingga ketika Caffeine menyimulasikannya, ia tidak akan mengetik ~
    • edit ~/.inputrc(buat file baru jika tidak ada)
    • tambahkan baris "\e[28~":""
  10. Mulai Kafein
  11. Mulai kembali sesi terminal Anda
    • Seharusnya tidak ada lagi acak ~ketika menggunakan terminal Putty dengan server linux itu

+1. Saya telah memperluas jawaban ini di bawah ini (dengan penjelasan mengapa ini bukan jawaban yang optimal untuk saya) :)
Petru Zaharia

7

Saya menemukan solusi shreyansp menjadi yang paling (tapi tidak cukup) yang memuaskan :)
Inilah upaya saya untuk meningkatkan itu (tentu saja YMMV). Semoga ini bisa bermanfaat bagi mereka yang mencari solusi :)

Solusi saya berperilaku sebagai berikut:

  • caffeine mengirim ke Windows kode Virtual-Key yang sesuai yang:
    • mencegah Windows dari tidur atau menganggur
    • tidak menghasilkan efek samping apa pun pada Windows baik sendiri maupun dalam kombinasi (tidak ada Ctrl, Shift, Alt, Alt-Gr, Win, F1-F5, F10, dll.)
    • baik tidak dikirim ke Putty atau diabaikan oleh Putty

TL; DR: Solusi saya diterapkan antara langkah 2 dan 3 (lihat di bawah) dengan -key:0Eparameter kafein:
Keluar dari Kafein & luncurkan kembali dengan:
caffeine.exe 5 -key:0E(untuk pengujian mudah)
caffeine.exe 50 -key:0E(untuk screen saver wajib yang disetel pada 1 menit)

  • Luncurkan readprogram pada host jarak jauh dan perhatikan bagaimana tidak ada penekanan tombol yang diterima setiap 5 atau 50 detik.
  • Keluar readdenganCtrl+C

Shreyansp mengusulkan solusi di mana perbaikan akan diterapkan antara langkah 5 dan 10 (lihat di bawah).
Efek samping dari hal itu (pada konfigurasi saya) adalah bahwa, dengan setiap penekanan tombol yang diteruskan dari kafein ke host jarak jauh:

  • itu memicu 'Reset scrollbar on keypress' (pengaturan pada halaman Putty / Window)
    yang biasanya saya inginkan, tetapi hanya ketika saya (manusia) menekan tombol tetapi tidak secara teratur oleh kafein :)
  • versi terjemahan readline / bash itu (dari '"\e[28~"'ke '""'(kunci kosong?) menyebabkan interaksi sesi jarak jauh menggantung selama beberapa detik

Untuk mengujinya dengan mudah, keluar dari Kafein & luncurkan kembali dengan interval 5 detik dan Kode Kunci-Virtual 07:
caffeine.exe 5 -key:07

  • Luncurkan readprogram pada host jarak jauh dan saksikan bagaimana penekanan tombol diterima setiap 5 atau 50 detik.
  • Keluar readdenganCtrl+C

Keystroke 'pipeline', seperti yang saya mengerti:

  1. Caffeine mengirimkan Kode Kunci-Virtual ke Windows
  2. Windows mengirimkan Kode Kunci-Virtual ke Putty
  3. Putty melakukan beberapa 'terjemahan' / 'pemetaan' berdasarkan pada beberapa pengaturan sesi di:
    • Terminal/*
    • Jendela/*
  4. Putty mengirimkan kode kunci yang 'diterjemahkan' / 'dipetakan' ke host jarak jauh
  5. Pada remote host, program 'terminal' (misalnya: $TERM=xterm, vt100, vt102, vt220, dll) diterjemahkan dari 'line protocol' ke dalam kode kunci.
  6. perpustakaan readline melakukan beberapa terjemahan / pemetaan berdasarkan ~/.inputrc
  7. readline mengirimkan Kode Kunci ke bash
  8. bash melakukan beberapa terjemahan / pemetaan berdasarkan ~/.bashrc(berdasarkan pada perintah bind builtin)
  9. bash atau readline (tidak yakin yang mana) mengirimkan Kode Kunci yang diterjemahkan ke nano (editor teks saya)
  10. Pipa ini bisa menjadi lebih lama dengan menambahkan screenprogram (yang termasuk $TERM=screenuntuk langkah 5. dan kembali lagi pada langkah 6. hingga 10.)

Catatan: Begitu sampai ke langkah 4., menjadi sangat sulit untuk secara tepat mengontrol berbagai lapisan 'terjemahan' / 'pemetaan'. Saya akan merekomendasikan menghindari itu jika Anda bisa.


Latar belakang:
Saya menggunakan caffeine.exe -key:07selama bertahun-tahun sebelum harus berurusan dengan pfsense 2.3.3-RELEASE-p1 (berdasarkan FreeBSD 10.3-RELEASE).
Kemudian, caffeine.exe -key:07diterima di sisi lain sebagai ^[[28~... yang tampaknya dipetakan ke Ctrl+^(Set Mark) di Nano.
Ini cukup menjengkelkan (bayangkan seseorang menekan dan mempertahankan Tombol Shift saat Anda memindahkan tanda sisipan teks di Notepad).

Sebelumnya, saya melakukan banyak kustomisasi di Putty Settings, ~/.tcshrc, ~/.inputrc, ~/.bashrc, ~/.nanorc, ~/.screenrcuntuk mendapatkan apa yang saya anggap fungsi dasar ( Backspace, Delete, Home, End, PgUp, PgDown, Ctrl+Left, Ctrl+Right, Numpad 0-9, numpad ./*-+) bekerja secara konsisten antara bash / nano / layar.

Setelah saya menemukan caffeine.exe -key:07'bug' ini, saya tidak ingin melacaknya lagi :)


Diuji pada:
Windows 8.1 64-bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (berdasarkan FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00


Referensi:


1

Ini benar-benar terlihat seperti urutan pelarian, atau karakter kontrol, yang mungkin menjelaskan mengapa Anda tidak melihatnya di program lain seperti notepad.

Saya tidak yakin tombol mana yang harus ditekan untuk mendapatkan output ini, tetapi saya akan bermain-main sedikit dan mencoba mencari tahu. Bisakah Anda menyebutkan urutan lain yang ditampilkan? Perilaku mysql dan nano mungkin hanya interpretasi lain dari urutan pelarian yang tampaknya masuk.

Akhirnya, pertanyaannya adalah apa yang menyebabkan input-input utama ini. Apakah Anda, secara kebetulan, menggunakan laptop yang, misalnya, secara otomatis mengontrol cahaya latar menggunakan beberapa perangkat lunak berpemilik? Saya telah melihat beberapa perangkat lunak aneh yang sudah diinstal sebelumnya sebenarnya meniru penekanan tombol alih-alih menggunakan API. Anda mungkin ingin menggunakan sesuatu seperti inputlog pada diri Anda sendiri.


Sejak itu saya telah mengubah sistem operasi, pertama-tama mengubah dual Win-8.1 & Ubuntu saya menjadi Ubuntu saja, kemudian ke Mint, dan akhirnya ke Arch. Saya belum mengalami masalah serupa, yang membuat saya percaya bahwa masalah itu terisolasi dengan cara di mana Windows berinteraksi dengan Putty. Adapun penyebab input kunci, saya tidak akan terkejut jika apa yang Anda sarankan adalah kasusnya, namun saya tidak menggunakan atau melihat segala jenis kontrol perangkat keras otomatis. Jika saya masih memiliki log itu, saya akan mempostingnya. EDIT: Jika ada orang lain yang mengalami ini, saya mendorong Anda untuk mengirim informasi ini.
Zachary Polikarpus

Lihat juga jawaban Gilles di Why Putty memasukkan ~ ke dalam bash shell Fedora saya , yang dengan baik menjelaskan mengapa orang mungkin hanya melihat ~(dan mendengar beeb) ketika sebenarnya sesuatu seperti \e[3~dikirim.
Arjan

(Sebagai tambahan: Anda mungkin ingin menautkan ke pos itu, karena pada awalnya saya pikir melihat satu tidak~ akan menunjukkan urutan pelarian.)
Arjan

1

Saya menggunakan opsi -key: 07 pada commandline untuk meluncurkan caffiene .. Sepertinya untuk menghentikan masalah Putty.

Masukkan saja ini ke file bat

caffeine.exe -kunci: 07


Saya menggunakan 'caffiene.exe -key: 07' dan juga membantu saya selama bertahun-tahun. Namun, sejak terhubung ke pfSense saya (berbasis FreeBSD), ini diterima di sisi lain sebagai ^ [[28 ~ ... yang tampaknya dipetakan ke Ctrl + ^ (Set Mark) di Nano. Ini cukup menjengkelkan (bayangkan seseorang menekan dan menjaga Tombol Shift saat Anda memindahkan tanda sisipan teks di Notepad). :) Saya harus mencari kunci lain di sisi kafein atau melakukan pemetaan khusus di sisi FreeBSD. (lihat defs @ msdn.microsoft.com/en-us/library/windows/desktop/… )
Petru Zaharia

Beralih ke caffeine.exe -key:0E(lihat jawaban saya di bawah). Tampaknya bekerja dengan baik dengan Windows (8.1 64-bit) dan Putty dengan senang hati mengabaikannya :)
Petru Zaharia

0

Seseorang di forum Cisco menyarankan untuk mengubah parameter kecepatan konsol untuk menyelesaikan masalah ini.

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

Anda pasti sudah mencoba semua variasi kecepatan konsol di Putty seperti yang disebutkan dalam 1 ?

Catatan: Jika baud rate diatur berbeda dari laju default, karakter ganjil terlihat di CLI. Periksa table1 untuk menetapkan nilai baud untuk nilai Konfregasi yang berbeda.


1
Kecepatan konsol adalah untuk koneksi serial. Dia mengacu pada koneksi SSH. Meskipun SSH memiliki pengaturan "Kecepatan Terminal" ... Saya belum pernah melihat ini menyebabkan masalah.
Jared

0

Saya juga memiliki masalah yang sama dan menemukan bahwa caffeine.exe memang masalahnya. Pada awalnya saya pikir itu tidak dapat disebabkan oleh caffeine.exe karena saya menggunakan ini selama 2+ tahun di laptop lama saya. Saya mencoba mengubah caffeine.exe - alih-alih, tetapi itu mengirim ^ C. Menemukan program lain, Mouse Jiggler, yang menjaga screen saver tetapi tidak mengirim urutan Escape di sesi Putty saya lagi.


0

Solusi yang lebih baik adalah mengkonfigurasi pengaturan pada sesi dempul Anda sehingga Caffine tidak mengganggu itu.

Di Putty di bawah Keyboard Terminal pilih opsi SCO. Dalam Putty di bawah Terminal Bell, ubah tindakan ke Tidak Ada (untuk mematikan bunyi genta lonceng).

Caffine masih akan melakukan hal itu dan tidak mengganggu sesi dempul Anda. (Saya tidak menggunakan tombol Fn selama sesi dempul jadi saya tidak tahu apa yang terjadi jika Anda ingin menggunakan kunci Fn).


0

2017-09-20: Memecahkan injeksi arang dengan memulai kafein dengan «caffeine.exe -useshift -noicon» di penjadwal tugas yang dipicu saat masuk. Tidak ada ikon, tidak ada karakter yang disuntikkan lagi di sesi mintty / bash saya. Itu sangat menjengkelkan. Terima kasih semuanya atas petunjuk Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.