title: How to call ssh by subprocess module so that it uses SSH_ASKPASS variable
body: <p>I am writing a GUI which uses SSH commands. I tried to use the subprocess module to call ssh and set the SSH_ASKPASS environment variable so that my application can pop up a window asking for the SSH password. However I cannot make ssh read the password using the given SSH_ASKPASS command: it always prompts it in the terminal window, regardless how I set the DISPLAY, SSH_ASKPASS, TERM environment variables or how I pipe the standard input/output. How can I make sure that ssh is detached from the current TTY and use the given program to read password?</p>
  
  <p>My test code was:</p>
  
  <pre><code>#!/usr/bin/env python
  
  import os
  import subprocess
  
  env = dict(os.environ)
  env['DISPLAY'] = ':9999' # Fake value (trying in OS X and Windows)
  del env['TERM']
  env['SSH_ASKPASS'] = '/opt/local/libexec/git-core/git-gui--askpass'
  
  p = subprocess.Popen(['ssh', '-T', '-v', 'user@myhost.com'],
      stdin=subprocess.PIPE,
      stdout=subprocess.PIPE,
      stderr=subprocess.PIPE,
      env=env
  )
  p.communicate()
  </code></pre>