69823


Windows10のバッチファイルでUbuntuのリモートサーバーにSSHで繋いだ後、さらにコマンドを入力させることは出来ますでしょうか?

例えば、下記のバッチファイルを実行して、SSHで__HogeというUbnutuのホストに繋ぎ、Ubuntu上で`echo
"hello"`のコマンドを実行したいと考えています。

[code]

    ssh __Hoge
    echo "hello"
    
[/code]

上のバッチファイルを実行してみたところ、コマンドプロンプトが立ち上がってsshで繋ぐところまではうまくいくのですが、`echo
"hello"`を入力させることは出来ないようでした。  
Windows10のバッチファイルでSSHしてからコマンドを入力させるまでの書き方について、  
ご存知の方がいらっしゃいましたら、ご回答のほど何卒宜しくお願いします

<ご参考>  
SSH用のConfigファイル`C:\Users\<user_name>\.ssh\config` を使って、  
コマンドプロンプトからsshコマンドでリモートサーバにアクセスする方法については下記を参照しました。

[~/.ssh/configについて -
Qiita](https://qiita.com/passol78/items/2ad123e39efeb1a5286b)

今回使っているconfigの中身は下記の通りです。

[code]

    ServerAliveInterval 60
    
    Host __Hoge
      HostName Hoge
      User tanaka
      Port 77
      PreferredAuthentications publickey
      IdentityFile /Users/tanaka/.ssh/id_rsa
    
[/code]

<実行環境>

  * ローカルPC：Windows10 Pro
  * リモート先のホストPC：Ubuntu 18.04.3 LTS


CC BY-SA 4.0
2020-08-24T06:25:26.793
69822
2020-08-24T07:48:57.700
2020-08-24T07:48:57.700
3060
30280
question
ubuntu bash windows-10 ssh batch-file
Windows10のバッチファイルで、SSHクライアントを起動させてからコマンドを入力させる方法


>
[code]

>     ssh __Hoge
>     echo "hello"
>  
[/code]

これでは、sshが終了してからechoを実行することになります。  
[sshのmanpage](https://man.openbsd.org/ssh.1)には

> ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c
> cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F
> configfile] [-I pkcs11] [-i identity_file] [-J destination] [-L address] [-l
> login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q
> query_option] [-R address] [-S ctl_path] [-W host:port] [-w
> local_tun[:remote_tun]] destination [command]

とあるように、オプションを一通り指定した後に実行したいコマンドを指定します。  
ただし、echoというコマンドは存在せず、シェルの内部コマンドとなっています。そこで実行すべきコマンドはシェルであり、シェルに対してechoを渡します。  
シェルに何を利用するかは個人の自由ですが例えばbashを使用した場合、最終的には

[code]

    ssh __Hoge bash -c 'echo "hello"'
    
[/code]

のようになるでしょうか。


CC BY-SA 4.0
2020-08-24T06:43:17.843
69823
2020-08-24T06:43:17.843
4236
69822
answer