2011-01-18 55 views
0

SSH(paramikoを使用)でサーバーに接続し、何かをしてWebページに出力を出力するかなり簡単なアプリケーションを書いています。私はコマンドラインから実行するとうまくいくスクリプトを書いた。しかし、私がDjangoアプリケーションで実行すると、connect部分を通過することはできません。DjangoアプリケーションでSSH経由でサーバーに接続できません

SSHは、一部を接続します

transport = paramiko.Transport((host, port)) 

# application cannot get through this line 
transport.connect(username = '***', password = '***') 

output = ... 

ビュー:

def ssh_output(request): 
    return HttpResponse(output) 

任意のアイデアは、なぜそれがこのように振る舞うのか?それを修正する方法はありますか?

+0

たala欠落しているホスト鍵を追加するために欠けているホストキーのポリシーを設定することができますように見えます

次のエラーメッセージが表示されますか?それはあなたの完全なビュー機能です。なぜなら、そこには「出力」が定義されていないからです。 ssh接続はどこで実行されますか?コードとエラーがさらに必要になると思います。 – Spacedman

答えて

3

あなたのコマンドラインスクリプトを実行しているユーザーとは別のユーザーでDjangoアプリケーションが実行されている可能性があります。また、私はDjangoアプリのユーザーがホストにsshしようとしているのは初めてだと思うので、 '〜/ .ssh/known_hosts'の質問を更新するのもいいですか?あなたがSSHClient代わりの交通を使用している場合、その後、あなたは自動的に

import paramiko 
ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect(your_host, port=your_port, username=your_username, password=your_password) 
関連する問題