Harikrishna
Harikrishna

Reputation: 1140

Perform unix operations after connecting to remote host using ssh

Using paramiko to connect to remote host. How do i move across directories and perform unix operations? Sample code below

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('remote ip', username='username', password='password')
ftp = ssh.open_sftp()
ssh.exec_command('cd /folder1/folder2')

How do i perform operations like listing files in a directory, checking current working directory and perform other unix commands?

Upvotes: 0

Views: 61

Answers (1)

Fabio Marzocca
Fabio Marzocca

Reputation: 1677

This way (example on ls command):

import paramiko
import sys

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('x.x.x.x', port=22, username='user', password='pass')
stdin, stdout, stderr = ssh.exec_command('ls')

# Wait for the command to terminate
while not stdout.channel.exit_status_ready():
    # Only print data if there is data to read in the channel
    if stdout.channel.recv_ready():
        rl, wl, xl = select.select([stdout.channel], [], [], 0.0)
        if len(rl) > 0:
            # Print data from stdout
            print stdout.channel.recv(1024),



ssh.close()

Upvotes: 1

Related Questions