すべてのSSH接続を取り消して PuTTY を「ワンショット」で閉じる方法はありますか?私はWindows 7で作業し、PuTTYを使用してさまざまなLinuxホストにSSH接続します。
私が自分で作業している方法の例:
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.
上記に従って、Host8からPuTTYを一度に閉じる方法はありますか?ときどき、最大5〜10のホストの深さを見つけます。 XをクリックしてPuTTYウィンドウを閉じることができることはわかっていますが、exitコマンドを使用してSSH接続が適切に閉じられることを確認したいと思います。また、私は怠惰を増やす方法についてのヒントを求めていることに気づきました。 「どうすればもっと効率的になることができるのか」と書いておくだけです。
ssh
接続終了エスケープシーケンスを使用してみてください。
ssh
セッションで、~.
(チルドドット)を入力します。入力しても文字は表示されませんが、セッションはすぐに終了します。
$ ~.
$ Connection to me.myhost.com closed.
man 1 ssh
から
The supported escapes (assuming the default ‘~’) are:
~. Disconnect.
~^Z Background ssh.
~# List forwarded connections.
~& Background ssh at logout when waiting for forwarded
connection / X11 sessions to terminate.
~? Display a list of escape characters.
~B Send a BREAK to the remote system (only useful for SSH protocol
version 2 and if the peer supports it).
~C Open command line. Currently this allows the addition of port
forwardings using the -L, -R and -D options (see above). It also
allows the cancellation of existing remote port-forwardings using
-KR[bind_address:]port. !command allows the user to execute a
local command if the PermitLocalCommand option is enabled in
ssh_config(5). Basic help is available, using the -h option.
~R Request rekeying of the connection (only useful for SSH protocol
version 2 and if the peer supports it).
押すだけ CtrlD ホールドCtrlキーでログアウトし、ウィンドウが消えるまで「d」を押します。
単にPuTTYを閉じます。 (Alt+F4 デフォルトではIIRCです。)
または、別のホストにジャンプするときに、exec
を使用してシェルプロセスをssh
に置き換えることができます。
SSH to Host1 with PuTTY...
banjer@Host1:~> #...doin some work...ooh! need to go check something on Host8...
banjer@Host1:~> exec ssh Host8
banjer@Host8:~> #...doin some work...OK time for lunch. lets close PuTTY...
banjer@Host8:~> exit
PuTTY closes.
トラフィックは他のすべてのサーバーを通過するため、5レベルの深さはきれいではありません。そのため、PuTTYまたはssh(〜。)を強制終了することはお勧めしません。これは(何をするかに応じて)サーバー上で孤立したプロセスが発生する可能性があるためです。
「怠け者」を減らしてみてください。 puttysのタイトルバーを右クリックすると、新しいセッションをすばやく開くことができます。 「デフォルト」サーバーがあり、そこから1回のジャンプを受け入れる場合、「重複セッション」機能は非常に役立ちます。特にpubkey認証を使用する場合。
もう1つの方法は、function
をssh
用に作成することです。
function ssh(){ /usr/bin/ssh $@ ; exit ; }
残念ながら、リモートシステムでの作業が完了すると、接続が閉じられ、コンソールからログアウトされます。
すべてのサーバーでそのような機能を作成する必要があることに注意してください。そうしないと、このハックは機能しません。ところで、いつでも〜/ .bashrcまたは〜/ .whatever_Shell_you_use_rcに関数を置くことができます。
それは、utherの方法に比べて少し汚いハックに見えます。
少しスクリプトを作成してもかまわない場合は、これを行うことができます。
スクリプト:myssh.sh
#!/bin/bash
ssh $1
if [ $? -eq 5 ]; then
exit 5
fi
Dotコマンドで呼び出します。
$ . myssh [email protected]
1つのレベルを終了する場合:
$ exit
すべて終了する場合:
$ exit 5