1. ホーム
  2. python

[解決済み] Python を使って ssh でコマンドを実行する

2022-03-03 14:20:53

質問

Pythonでいくつかのコマンドラインコマンドを自動化するスクリプトを書いています。今のところ、以下のような呼び出しをしています。

cmd = "some unix command"
retcode = subprocess.call(cmd,shell=True)

しかし、私はリモート・マシンでいくつかのコマンドを実行する必要があります。手動で、私は ssh を実行し、コマンドを実行します。Pythonでこれを自動化するにはどうしたらいいでしょうか?私はリモートマシンに(既知の)パスワードでログインする必要があるので、私はちょうど使用できません。 cmd = ssh user@remotehost 何か良いモジュールがあるのでしょうか?

どのように解決するのですか?

を紹介します。 パラミコ

見る この質問

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)

sshキーを使っている場合は、そうしてください。

k = paramiko.RSAKey.from_private_key_file(keyfilename)
# OR k = paramiko.DSSKey.from_private_key_file(keyfilename)

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=host, username=user, pkey=k)