
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
にログを記録しfoo
、command
そこで実行し、終了します。-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