首页 > 解决方案 > Paramiko 与 mod_wsgi 一起使用时因身份验证超时而失败

问题描述

我正在使用 paramiko 从 django SSH 到外部服务器。服务器凭据和所有连接都正常。一旦使用 mod_wsgi 在 apache24 中投入生产,paramiko 身份验证就会超时

有什么遗漏或需要更改的吗?我想不通,也无法在 web
mod-wsgi 4.9.0
Django 3.2.5
paramiko 2.7.2
python 3.9
apache2.4.46 中找到任何相关信息

视图.py

import paramiko
from paramiko import BadHostKeyException, AuthenticationException, SSHException,ChannelException

host = "hostname"
port = 22
username = "username"
password = "password"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
command = "ls -l"
try:
    ssh.connect(host, port, username, password)
    print(datetime.datetime.now(), 'Connected to remote end', ssh ) #this never shows in apache logs
    stdin, stdout, stderr = ssh.exec_command(command)
    lines = stdout.readlines()
    print(lines)
except (BadHostKeyException, AuthenticationException, SSHException,
        ChannelException) as ex:
    print(ex)

apache-error.log

[Thu Oct 14 17:33:16.135511 2021] [wsgi:error] [pid 24700:tid 1996] [client 127.0.0.1:52744] Authentication timeout.\r, referer: http://newsite.com/thisview/

httpd-vhost.conf

<VirtualHost *:80>
    LoadModule wsgi_module "C:/virtualenv/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
    WSGIApplicationGroup %{ENV:ONE_GROUP}
    ServerName newsite.com
    WSGIScriptAlias / "C:/virtualenv/proj/proj/wsgi.py" application-group=%{ENV:ONE_GROUP}
    WSGIImportScript "C:/virtualenv/proj/proj/wsgi.py" application-group=%{ENV:ONE_GROUP}
    
    <Directory "C:/virtualenv/proj/proj">
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    Alias /templates "C:/virtualenv/proj/templates"
    <Directory "C:/virtualenv/proj/templates">
            Require all granted
    </Directory>
    
    Alias /static "C:/virtualenv/proj/mainsite/static"
    <Directory "C:/virtualenv/proj/mainsite/static">
            Require all granted
    </Directory>common

</VirtualHost>

标签: pythonapachemod-wsgiparamiko

解决方案


推荐阅读