В конце концов, я узнал ответ благодаря другу. Несмотря на то, что я допустил простую ошибку, я упомяну об этом здесь, поскольку отследить ошибку сложно.
Это потому, что я дал host=
как user@host
. Вот рабочий код, если кому-то это нужно. И имя пользователя - это обычно ОС, которую вы используете с AWS. например, ubuntu
для Ubuntu.
import paramiko
hostname = "ec2-3-123-12-80.us-east-2.compute.amazonaws.com" # Remote machine's public DNS
username = "ubuntu" # Username for SSH
pass_key = "amzonLinux16.pem" # Your Private Key for AWS EC2
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
client.connect(hostname, username=username, key_filename=pass_key)
for command in 'echo "Hello, world!"', 'cat ~/test', 'uptime', 'ifconfig':
stdin, stdout, stderr = client.exec_command(command)
stdin.close()
print(stdout.read().decode('utf-8'))
stdout.close()
stderr.close()
client.close()