テスト マシン (Windows XP) とコントローラー マシン (win 7) の間で ssh 接続を確立するために openSSH を使用しています。テスト マシンで ssh サーバーを構成したところ、ssh セッションを取得してコマンドを実行できました。この ssh セッションでコマンドを実行すると、パテ セッションに o/p が表示されますが、同じコマンドを使用して o/p を取得しようとすると、値が得られません。
XPボックスにopensshをインストールしました。これは、Windows v3.8.1p1-1のバージョンOpenSSHです。
これは、Windowsでsshを実行するように構成した方法です
C:\Documents and Settings\Administrator>cd c:\OpenSSH
C:\OpenSSH>cd bin
C:\OpenSSH\bin>mkgroup -l >> ..\etc\group
C:\OpenSSH\bin>mkpasswd -l -u administrator >> ..\etc\passwd
C:\OpenSSH\bin>net start opensshd
The requested service has already been started.
以下は同じための私のコードです
import paramiko
class TestSSH():
def __init__(self):
self.ip = "172.xxx.xxx.xxx"
self.user = "Administrator"
self.password = "passpass"
def run(self):
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(
self.ip,
username = self.user,
password = self.password
)
std_in, std_out, std_err = ssh_client.exec_command("dir")
print std_out.read()
obj = TestSSH()
obj.run()
これは私がパテセッションで取得しているo / pです-
Directory of C:\Documents and Settings\Administrator
11/14/2013 03:11 PM <DIR> .
11/14/2013 03:11 PM <DIR> ..
11/14/2013 03:12 PM <DIR> Desktop
07/27/2011 06:00 PM <DIR> Favorites
11/14/2013 03:11 PM <DIR> hemant
07/27/2011 06:00 PM <DIR> My Documents
07/27/2011 11:12 PM <DIR> Start Menu
0 File(s) 0 bytes
7 Dir(s) 39,932,612,608 bytes free
C:\Documents and Settings\Administrator>
しかし、私は何のo / pも取得していません
Windows名freeSSHdの他のsshutilityを試してみましたが、パテを介して接続してコマンドを実行できますが、接続することはできますが、コマンドを実行することはできません。freeSSHd サーバーで次のエラーが発生します。
Unable to execute command or shell on remote system: Failed to Execute process.
この o/p は std_err 変数ではなく std_out に入ります。