Apakah ada cara untuk mundur dari semua koneksi SSH dan menutup Putty dalam "satu tembakan"? Saya bekerja di Windows 7 dan menggunakan Putty ke SSH ke berbagai host Linux.
Contoh cara saya bekerja:
SSH to host1 with PuTTY...
banjer@host1:~> #...doin some work...ooh! need to go check something on host8...
banjer@host1:~> ssh host8
banjer@host8:~> #...doin some work...OK time for lunch. lets close putty...
banjer@host8:~> exit
banjer@host1:~> exit
Putty closes.
Per di atas, ada cara untuk mendapatkan dari host8 untuk menutup Putty dalam satu tembakan? Kadang-kadang saya menemukan diri saya hingga 5 atau 10 host. Saya menyadari bahwa saya dapat mengklik X untuk menutup jendela Putty, tetapi saya ingin memastikan koneksi SSH saya ditutup dengan benar dengan menggunakan perintah keluar. Saya juga menyadari bahwa saya meminta tips tentang cara meningkatkan kemalasan. Saya hanya akan menuliskannya sebagai "bagaimana saya bisa lebih efisien".
ctrl+d
beberapa kali?Jawaban:
Coba gunakan
ssh
urutan escape terminasi koneksi.Di
ssh
sesi tersebut, masukkan~.
(tilde dot). Anda tidak akan melihat karakter saat mengetiknya, tetapi sesi akan segera berakhir.Dari
man 1 ssh
sumber
~.
alias atau fungsi? Hanya untuk memberinya nama yang mudah diingat sepertiexitall
. Sekarang saya meminta terlalu banyak :). Saya mencoba beberapa hal~/.bashrc
tetapi mendapatkan-bash: ~.: command not found
. Saya kira bash melihatnya sebagai string dan bukan urutan keluar yang datang langsung dari keyboard.ctrl+d
solusinya, tetapi ini menjawab pertanyaan saya lebih langsung. Terima kasih semuanya.~.
, itu ditanganissh
sendiri.ssh
Klien CLI membutuhkan teknik ini karena itu CLI. Putty adalah aplikasi GUI dan ada banyak cara yang lebih ramah pengguna untuk melakukan hal ini pada GUI.Cukup tekan CtrlDdan itu akan mencatat Anda di sana untuk menahan ctrl dan tekan "d" sampai jendela menghilang.
sumber
EOT
. Dan bahkanbash
akan mengabaikannya di tengah baris perintah. Cobalah sendiri: ketikkan satu huruf dan cobaCtrl-D
.logout
.Cukup tutup Putty. ( Alt+ F4secara default IIRC.)
sumber
Cara lain adalah dengan membuat
function
untukssh
:Sayangnya itu juga akan selalu menutup koneksi dan logout dari konsol setelah Anda selesai bekerja pada sistem jarak jauh.
Perhatikan, bahwa Anda perlu membuat fungsi seperti itu di semua server Anda, jika tidak, peretasan ini tidak akan berfungsi. Btw, Anda selalu dapat menempatkan fungsi ke ~ / .bashrc atau ~ / .wh whatever_shell_you_use_rc.
Tampaknya hack sedikit kotor dibandingkan dengan cara lain.
sumber
function
bukan POSIX - cukup hapus kata kunci, dan Anda perlu mengutip$@
dengan benar, atau argumen Anda akan diteruskan setelah pemisahan kata (buruk).Atau Anda dapat menggunakan
exec
untuk mengganti proses shell Anda denganssh
ketika melompat ke host lain:Kedalaman 5 level tidak cantik, karena lalu lintas akan melewati semua server lain. Karena itu saya tidak merekomendasikan hanya membunuh Putty atau ssh (~.), Karena (tergantung pada apa yang Anda lakukan) ini dapat mengakibatkan proses yatim di server.
Lebih baik mencoba dan tidak terlalu "malas". Klik kanan pada bilah judul puttys membuat pembukaan sesi baru menjadi cepat. Jika Anda memiliki server "default" dan menerima 1 lompatan dari itu, fitur "Duplicate Session" sangat berguna. Terutama saat menggunakan otentikasi pubkey.
sumber
Jika Anda tidak keberatan melakukan sedikit skrip, Anda dapat melakukan ini.
Script: myssh.sh
Panggil melalui perintah dot:
Jika Anda ingin keluar satu tingkat:
Jika Anda ingin keluar semua:
sumber
Mengetik logout di jendela terminal dempul melakukannya untuk saya:
Menutup koneksi ssh dan keluar dari Aplikasi Putty.
sumber
ssh host1
, dan kemudian, darihost1
, tidakssh host8
. Pada saat itu alogout
akan melakukan hal yang sama denganexit
perintah yang sudah mereka ketahui - keluar darihost8
dan mengembalikannyahost1
.