他のサーバへプログラムの実行指示を出すには？


コンピュータ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」が実行されるようにしたいです。




コンピュータ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]




コンピュータ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]

