paramikoを使用してあるサーバーから別のサーバーに接続しようとしています。コードは次のとおりです。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username='abc', password='password')
stdin, stdout, stderr = ssh.exec_command('ssh xyz@host1 ls')
特殊文字「@」のため、上記のコードを実行できません。誰かが私に解決策を提案できますか?
ssh xyz@host1 ls
Puttyでコマンドを正常に実行できます。しかし、Pythonコードでは機能しません。
答え1
ユーザー名とホストはすでに指定されているため、ssh.connect
そうする必要はありませんssh xyz@host1
。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username='abc', password='password')
stdin, stdout, stderr = ssh.exec_command('ls')
ssh.connect
接続が確立されているため、SSHを再度使用する必要はありません。