コマンドラインから定義されたタイトルでSSHセッションを開く

コマンドラインから定義されたタイトルでSSHセッションを開く

putty(コマンドラインから)を実行する際に少し問題があります-m議論。これについて私を助けてください、またはもっと良い方法をご存知でしたら提案してください :)

コマンド(「実行」から):

putty -ssh user@machine -pw password -m C:\test.txt

「test.txt」コマンド:

PROMPT_COMMAND='echo -ne "\033]0;'$( ifconfig | head -2 | tail -1 | awk '{print $2}')'\007"'

問題:
セッションを開いてすぐに閉じる

何をするのでしょうか: 定義されたタイトルでコマンドラインからSSHセッションを開く

ありがとう。

答え1

あなたも同じようなことをしようとしたと思いますこの答えただし、そこで提供されているサンプル コマンドは、サーバー上のファイルから実行される必要があります。

これらは、-mスイッチを使用して実行するコマンドとして渡すことはできません。このPuTTYのスイッチ模倣することですLinux コマンドライン SSH クライアントの動作:

ssh user@foo command

この方法では、ssh はサーバーuserにログを記録しfoocommandそこで実行し、終了します。-m を使用すると、PuTTY もまったく同じことを実行しているようです。

私のおすすめ

リモートサーバーにスクリプトを用意し、PuTTYを別の方法で設定します。まず、ログイン後に実行したいコマンドを記述したファイルを作成する必要があります。.title

cat > ~/.title

次に、必要なものを入力するか、コピーして貼り付け、その後 Ctrl+D を押します。 とりあえず、タイトルの設定をテストしてみましょう。

echo -ne "\033]0;PuTTY\007"

上記をターミナルで直接試すこともできます。PuTTYのウィンドウタイトルが変更されない場合は、ディストリビューションがすでに設定されている可能性があります。デフォルトのPROMPT_COMMAND変数ターミナルで次のコマンドを実行すると確認できます。

echo $PROMPT_COMMAND
unset PROMPT_COMMAND
echo -ne "\033]0;PuTTY test\007"

重要なのは、PROMPT_COMMAND変数の現在の値を設定解除することです。その後、最後のコマンドでウィンドウのタイトルを に設定する必要がありますPuTTY test

私の解決策

私の場合は、PuTTYでセッションを準備し、GUI の「リモート コマンド」ボックスに設定:

/bin/bash --rcfile ~/.title

このセッションの名前 (例: SessionName) を入力し、PuTTY 設定の最初のページの「保存されたセッション」リストの近くにある「保存」ボタンを押すことを忘れないでください :)

その後、PuTTYを起動してこのセッションをロードするように指示します。

putty -load SessionName -l user -pw password

はい、残念ですが、保存されたセッションの「リモート コマンド」ボックスに相当するコマンド ラインはありません。そのため、これらすべてのハードルを乗り越える必要があります :(

TL;DRバージョン

これらの手順をすべて正しく実行すれば、すべて正常に動作するはずです。

  • ~/.titleリモートマシンにスクリプトを作成する
  • Bashを実行するリモートコマンドでセッションを準備し、~/.title
  • PuTTY に起動時に準備されたセッションをロードするように指示し、ユーザー名とパスワードを指定します。

プロのヒント

コマンドライン (およびスクリプト) でクリアテキストでパスワードを指定する代わりに、SSH キーを使用して Windows トレイで「Pageant」(PuTTY 認証エージェント) を実行する方法を学ぶ必要があります。

答え2

今のところテストするためのsshはありませんがhttp://www.derkeiler.com/Newsgroups/comp.security.ssh/2012-04/msg00005.html 「ウィンドウを開いたままにして見たいだけなら、スクリプトの最後に sleep 10 を入れて 10 秒待ちます。シェルを使いたいなら、exec /bin/bash最後に を使ってください。Shai」

いくつかの洞察を提供する他の 2 つのリンク。

PuTTY: ログイン後にリモートコマンドを実行し、シェルを実行したままにする

Linux から PuTTY のタイトル バーに表示される内容を選択するにはどうすればよいですか?

barlop によって追加されました

以下は putty を使用せず、cygwin で openssh を使用します。a.aファイルには、プロンプトを変更する ls またはコマンドが含まれている可能性があります。これはローカルです。

$ ssh 127.0.0.1 "cat | bash" < a.a

関連して、私が投稿した回答を参照してください -https://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote-machine-and-include-arguments/208952#208952

関連情報