38060


コンピュータAとコンピュータBがあり、Bにはprogram.pyがあって、Bのコマンドプロンプトで「python
program.py」とするとprogram.pyが実行されます。

このprogram.pyをコンピュータAからの指示で実行するにはどういう方法がありますか？

追記  
動作環境は、コンピュータAがWindows
10、BはLinux（Ubuntu）です。コンピュータAでアプリケーションを作って、「B上でpython.pyを実行するボタン」をクリックするとB上で「python
python.py」が実行されるようにしたいです。


CC BY-SA 3.0
2017-09-19T08:07:52.870
38037
2017-09-20T06:16:46.850
2017-09-19T08:50:48.127
question
python network
他のサーバへプログラムの実行指示を出すには？


Linux上のコマンドをリモートから実行するには`rsh`がよく使われていて、呼び出す側がWindows 10であれば"Bash on
Windows"環境のrshコマンドでやりたい事が実現できると思います。

なお、今回の例であればprogram.pyが置いてある=命令を受け取る側の **コンピュータB** 上で予めrshサーバを動作させておく必要があります。

参考：  
[Bash on Ubuntu on Windowsとは？ そのインストールと使い方 - Build
Insider](http://www.buildinsider.net/enterprise/bashonwindows/01)  
[Windows10でrshコマンドを使いたい](https://social.technet.microsoft.com/Forums/ja-
JP/f324a8c5-bc1b-4dbd-b283-5c06ebd5bd90/windows10rsh?forum=win10itprogeneralJP)


CC BY-SA 3.0
2017-09-19T12:01:47.543
38042
2017-09-19T12:01:47.543
3060
38037
answer


コンピュータBでSSHが有効なら （大抵はデフォルトの状態で有効だと思います）  
コンピュータA側で、[PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
のplink.exeをアプリケーションから呼び出せば 実現出切ると思います。

plink は コマンドラインのSSHクライアントです。  
使い方の例ですが、次の例は、`myhost` というLinuxホストに `myuser` ユーザで ログインして `python --version`
コマンドを実行しています。

(例) C:>plink -pw mypass -batch myuser@myhost "python --version"  
Python 2.6.6

オプションの `-pw mypass` は ログインパスワードを指定しています。  
`-batch` は対話的なメッセージを抑止するオプションで、入力待ちで処理が進まない事を回避する意味があります。  
この他のオプションは、plink を引数無しで実行すると使い方が表示されるのでご覧ください。

[code]

    C:\>plink
    Plink: command-line connection utility
    Release 0.67
    Usage: plink [options] [user@]host [command]
           ("host" can also be a PuTTY saved session name)
    Options:
      -V        print version information and exit
      -pgpfp    print PGP key fingerprints and exit
      -v        show verbose messages
      -load sessname  Load settings from saved session
      -ssh -telnet -rlogin -raw -serial
                force use of a particular protocol
      -P port   connect to specified port
      -l user   connect with specified username
      -batch    disable all interactive prompts
      -sercfg configuration-string (e.g. 19200,8,n,1,X)
                Specify the serial configuration (serial only)
    The following options only apply to SSH connections:
      -pw passw login with specified password
      -D [listen-IP:]listen-port
                Dynamic SOCKS-based port forwarding
      -L [listen-IP:]listen-port:host:port
                Forward local port to remote address
      -R [listen-IP:]listen-port:host:port
                Forward remote port to local address
      -X -x     enable / disable X11 forwarding
      -A -a     enable / disable agent forwarding
      -t -T     enable / disable pty allocation
      -1 -2     force use of particular protocol version
      -4 -6     force use of IPv4 or IPv6
      -C        enable compression
      -i key    private key file for user authentication
      -noagent  disable use of Pageant
      -agent    enable use of Pageant
      -hostkey aa:bb:cc:...
                manually specify a host key (may be repeated)
      -m file   read remote command(s) from file
      -s        remote command is an SSH subsystem (SSH-2 only)
      -N        don't start a shell/command (SSH-2 only)
      -nc host:port
                open tunnel in place of session (SSH-2 only)
      -sshlog file
      -sshrawlog file
                log protocol details to a file
    
[/code]


CC BY-SA 3.0
2017-09-20T06:16:46.850
38060
2017-09-20T06:16:46.850
5008
38037
answer