![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
|
|
||||
|
のSSH / SCPが質問
このフォーラムのおかげで、私はプログラムは、プログラムを他のホスト上で実行を制御するためにSSHを使用して動作させることができた。私は今、それを強化したいと思います。
ターゲット上の制御プログラムを更新する必要があります時折開催される。として1つのホスト上では、ソースホスト上では、メニューのプログラムの更新は簡単です。数十には、制御プログラムが実行されます。 以来、私は、 SSH接続して設定ファイルをターゲットホストと、ログインIDのリストを含むが、私は自分のメニューを変更できる計算プログラムを自動化するためには、更新制御プログラムを、ターゲットサーバーへの送信。 試した2つの方法: 1 。まず、私は、メニューのプログラムの1つは、ターゲットホストのためのSCPが実行しようとした。私は、 SSHの場合にかかります。以来、私の制御プログラムは、ターゲットホストのauthorized_keysにファイル内のキーに表示されている、それは私の制御プログラムを実行しようとします。有効なコマンドとはSSH_ORIGINAL_COMMAND以上に送信されますので、他のパラメータのチェックは、失敗する。同様の条件時には、コマンドラインからのSCPを試みる場合に発生します。 2 。それから私は自分のメニューのプログラムは、 UPD 、これは、ターゲットホスト上の制御プログラムに送信するには、新しいコマンドを作成しようとした。そこでは、ターゲットホストは、ターゲットホストへのSCPが、ソースホストからは、新しいコードを行うと、新しいコードを実行する。私は、 SCPが"接続を拒否したとの"終了した。 私の最初の試みでは、ソースからのSCPの使用を無効にし、ホストのターゲットへのSSHキーでコマンドを設定するのですか? 2回目の試みでは、 SSHキーの失敗の結果は何ですか?私は、ソースからターゲットへのSSHアクセスできるようにキーを設定している。ターゲットでは、もし、ソースをターゲットにするからコードをコピーするには、もう一度キーを設定する必要があるのは、 SCPが実行? |
|
||||
|
ここに私は同僚のソースコードを検証後、何を発見した。を入れて
元ホストのスクリプトで以下の通りです: ################################################## ####### # source_host_script # # ################################################## ####### 。 。 。 パラメータ\u003d "更新" file_update \u003d " $ (ホーム) / $ (サブディレクトリ) / $ ( ) " newfile $ sshを( ) $ (ホスト) $ (パラメータ) $ ( ) @ file_updateユーザーID retval \u003d $ ? 場合、 [ $ ( retval ) -北東1 - 1 $ ( retval ) -北東0 ] ;し "ソースコードの更新に失敗しました: $エコー( ) " retval "プレスの任意のキーをエコー"を継続する Fiの ) $ ( retval復帰 ) 次に、ターゲットホスト上のスクリプトでは、次のコードを追加: ################################################## ####### # target_host_script # # ################################################## ####### 。 。 。 ################################################## ####### は、 SSHを呼び出すためのコマンドライン引数を取得# ################################################## ####### OSSMENU_COMMAND \u003d ` ( SSH_ORIGINAL_COMMAND ) | nawk ' ( ) $ 1 ` $エコーを印刷 パラメータ\u003d ` ( ) $ 2を印刷` $ ( SSH_ORIGINAL_COMMAND ) | nawk 'のNF > 1エコー NEWFILE \u003d ` ( ) $ 3印刷` $ ( SSH_ORIGINAL_COMMAND ) | nawk 'のNF > 2エコー エコーis_scp \u003d ` $ ( OSSMENU_COMMAND ) |はgrep " ^のSCP " |トイレ- lの` ################################################## ###### #の場合、この呼び出しをして、更新プログラムのソース管理のSCPです #コードサブルーチン。これは、最新のコピーされます 指定されたスクリプトの#バージョン。 #警告-エコーまたはその他の出力にしない #標準を-これは、 SCPがコマンドを殺すのだ! ################################################## ###### 場合、 [ $ ( is_scp ) -グアテマラ0 ] ;し CDを$ (ホーム) / $ ( newdir ) のSCP - ( NEWFILE ) $ pt retval \u003d $ ? 場合、 [ $ ( retval ) -北東0 ] ;し "ソースコードの更新に失敗しました: $エコー( ) " retval "プレスの任意のキーをエコー"を継続する その他の chmod 755 $ ( NEWFILE ) Fiの ) $ ( retval復帰 Fiの ) そのほとんどは、混乱しても私は私はそれを使用する時間が、動作がスローされます。どのようなときにSSHの鍵は、指定されたユーザーは、特定のスクリプトを指定するために実行するように設定している仕事を得るのSCPを知っているのは、唯一の方法です。 |