paramiko.ssh_exception.NoValidConnectionsError:[Errno None]无法使用AWS Elastic Beanstalk连接到端口22

2024-05-20 04:38:52 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一篇文章,希望它是适当的,而不是多余的

我在AWS Elastic Beanstalk上部署了一个应用程序,它使用Flask Dash API。我有一个API片段,需要远程连接到我的Raspberry Pi(SSH)并解析出一些文件

  • 这个代码片段在我的本地机器上完美地工作
  • 我可以轻松地将/ssh放入端口22上的RPi中
  • 在我的第一个路由器上,端口22已打开tcp/udp
  • 在我的第二台路由器上,我有一个端口22的NAT转发虚拟服务器规则,用于指向我的RPI的静态IP地址
    import paramiko
    import json
        
    client =  paramiko.client.SSHClient()
    hostname='example'
    port=22
    username='pi'
    password='masked'
        
        
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    client.load_system_host_keys()
    print('loaded client')
    client.connect(hostname, port, username, password)
        
    sftp_client = client.open_sftp()
        
    localFilePath='./some_file.json'
    sftp_client.get('/home/pi/some_file.json', localFilePath)
            
    sftp_client.close()

我收到错误paramiko.ssh_exception.NoValidConnectionsError:[Errno None]无法连接到上的端口22

我假设这是AWS端或我的路由器上的某种网络访问问题。我也可以从自己的网络外部轻松连接到我的RPi。我试图在我的EC2负载平衡器上添加一些入站/出站规则,但即使完全打开它也无法解决问题。我浏览了很多网站,找不到很多答案,所以我希望有人能提出一些对他人有益的建议

谢谢! EC2 Instance SG Rules


Tags: 端口importclientawsapijsonparamikoport