Naga Suresh.Thota Naga Suresh.Thota - 1 year ago 85
Python Question

connect to a remote system with a subprocess call without entering a password

I am trying to access a remote machine to execute remote a Python script (

I changed the SSH configuration so that if I enter
ssh user@ip
from host terminal it connects to remote system without asking for password.

When I run a Python script on the host machine to execute
by using SSH in a subprocess call like this:

P = subprocess.Popen(

It requires me to enter a password.

How can I access the remote machine without needing to enter a password?


  • Python version 2.7

  • Host and Remote systems are both using Ubuntu 14.04 LTS.

Answer Source

You should not use Popen to run the program ssh, but rather use a library like the excellent paramiko to run ssh commands. It has a documented API for connecting using public keys, which is discussed here: How to ssh connect through python Paramiko with public key

Then you'll be able to do something like this:

import paramiko
ssh = paramiko.SSHClient()

ssh.connect('some_ip', username='user', key_filename='keyfile')

stdin, stdout, stderr = ssh.exec_command('sudo python /home/path/')
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download