Articles of paramiko

无法使用Paramiko远程执行tcpdump

我试图用Paramiko远程运行tcpdump。 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip_machine, username='root', password=password) my_command = 'sudo timeout 10 tcpdump -i eth0 ip -w somefile' stdin, stdout, stderr = ssh.exec_command(my_command) channel = stdout.channel channel.recv_exit_status() ssh.close() 该程序立即退出,尽pipetimeout命令和recv_exit_status 。 tcpdump的输出文件被创build,但是是空的。

vi命令返回错误格式数据?

我使用python 2.7和paramiko库。 在窗口上运行的客户端应用程序向在Linux上运行的服务器应用发送ssh命令 当我发送vi命令时,我得到了响应<-[0m<-[24;2H<-[K<-[24;1H<-[1m~<-[0m<-[25;2H….不知道这些字符是什么意思,我怎么处理它。 我正在挣扎几个小时,请帮助我。

使用Fabric / Paramiko遍历SOCKS5代理时无输出

当尝试使用Fabric 1.6遍历SOCKS5代理到RHEL5 Linux主机时,该命令返回,但没有输出返回到stdout。 $> fab -H myhost -f ./fabfile.py remote_test –show=debug Using fabfile '/home/myuser/fabric/fabfile.py' Commands to run: remote_test Parallel tasks now using pool size of 1 [myhost] Executing task 'remote_test' [myhost] run: echo testing Enter SOCKS5 password for myuser: [myhost] Login password for 'myuser': $> echo $? 0 $> remote_test函数是: def remote_test(): run('echo testing') 如果我对非SOCKS5主机运行该命令,它工作正常。 […]

paramiko不能得到grep命令的输出

我正在使用paramiko图书馆。 使用shell = ssh.invoke_shell()和shell.send() 。 我发送的命令是cmd = """grep -i "Lost LLUS websocket" /var/log/debesys/cme.log\n""" 。 但是我没有得到输出。 我正在使用shell.receive获得输出,但我总是变得空白。我已经手动testing了这个命令,它工作正常。任何人有任何想法如何得到输出?

使用ssh-agent而不login

我们希望使用ssh-agent通过ssh自动连接到许多机器上,使用Ubuntu机器上的专用用户(12.04)。 问题是因为我们已经通过脚本生成了这个用户 useradd -m -s /bin/bash USER 而且我们没有login到那个用户,ssh-agent没有运行,并且没有提供密码而使用ssh(我们使用python和paramiko)的任何尝试都没有说 no autentication methods available 我们做了一些研究,发现很多人会用这个命令行启动ssh-agent eval "ssh-agent" 但是这对我们不起作用(尤其是当通过python执行上述命令时)。 使其工作的唯一方法是login到该用户(例如通过ssh),然后键入上面的命令,这使得我们的自动化方法不是那么自动化:有没有一种方法可以使ssh-agent在启动时启动,而无需login到专用用户?

Python守护进程中的Paramiko导致IOError

我想在python守护进程中使用paramiko执行ssh命令。 我为守护进程使用以下实现: https : //pypi.python.org/pypi/python-daemon/ 当程序启动时,paramiko尝试连接时,pycrypto引发一个带有Bad file descriptor IO Bad file descriptor 。 如果我删除守护程序代码(只取消注释最后一行,并注释上述两个) ssh连接build立如预期。 短testing程序的代码如下所示: #!/usr/bin/env python2 from daemon import runner import paramiko class App(): def __init__(self): self.stdin_path = '/dev/null' self.stdout_path = '/dev/tty' self.stderr_path = '/dev/tty' self.pidfile_path = '/tmp/testdaemon.pid' self.pidfile_timeout = 5 def run(self): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.load_system_host_keys() ssh.connect("hostname", username="username") ssh.close() app = […]

Paramiko挂起时执行一个大的wget命令

您好,我有问题执行一个命令,通过Ubuntu 10服务器执行一个100MB文件的wget。 更短的命令工作正常,除了这个。 下面的类包含了我如何使用paramiko和克服这个问题的不同尝试(请参阅不同的run或exec方法)。 在exec_cmd的情况下执行挂在这一行上: out = self.in_buffer.read(nbytes, self.timeout) 从paramiko的channel.py模块的recv方法。 同样的wget命令在使用Mac的普通ssh实用程序的shell中完美工作。 """ Management of SSH connections """ import logging import os import paramiko import socket import time import StringIO class SSHClient(): def __init__(self): self._ssh_client = paramiko.SSHClient() self._ssh_client.load_system_host_keys() self._ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self.time_out = 300 self.wait = 5 def connect(self, hostname, user, pkey): retry = self.time_out self.hostname = hostname […]

SCP与paramiko,使用不同的远程和本地目录

我有一个使用Paramiko的Python代码。 #!/usr/bin/env python import paramiko username = ('user') password = ('1234') hostname = ('test-server.com') ports = 22 localD = ('/var/tmp/testxxxxxxxx.tar.gz') remoteD = ('/var/tmp/testxxxxxxxx.tar.gz') paramiko.util.log_to_file('/tmp/paramiko.log') transport = paramiko.Transport((hostname, ports)) transport.connect(username = username, password = password) sftp = paramiko.SFTPClient.from_transport(transport) sftp.put(remotepath=remoteD, localpath=localD) sftp.close() transport.close() 通过这个代码,local-dir和remote-dir应该是相等的。 如果不是“找不到文件”如何更改或使用与local-dir不同的另一个remote-dir? 例: localD = ('/var/tmp/testxxxxxxxx.tar.gz') remoteD = ('/home/user/testxxxxxxxx.tar.gz') 谢谢

用Paramiko将文件从一个目录移动到另一个目录

我有一个脚本,在SFTP服务器上创build和tmp目录,然后在传输完成后将文件放在所述/tmp ,但是我需要将文件从/tmp移回到一个目录中。 使用Paramiko如何将文件从一个远程目录移动到另一个? 步骤指南: 本地文件—–>远程临时目录—->远程根目录 下面的代码如果需要: #!/usr/bin/python # ——————————————————————– #import libraries # ——————————————————————– import paramiko as PM import os import datetime # ——————————————————————– # Global Variables # ——————————————————————– host = 'host IP address' port = 22 username = 'Username' password = '*********' # Variable Paths localPath = '/shares/MILKLINK/fromML' remotePath = '/' logPath = '/shares/MILKLINK/logs/PPcfg02.log' SRCfiles […]

scp使用paramiko不工作 – SSH工作正常

我已经能够在远程服务器中使用ssh和issue命令。 现在我想从远程服务器scp文件,但这似乎是不可能的。 我对python和Paramiko完全陌生。 该错误是权限被拒绝在我的darn窗口的本地目录。 这些文件应该来自Mac。 任何其他非常简单的例子,我可以用来从远程Linux机器scp文件到我的本地Windows机器? import paramiko hostname = '192.xx.1.xx' password = 'pop123' username = "husbad2" port = 22 mypath='C:\\Users\\handsonexpert\\Documents' remotepath='/Users/ihussain/testdir/file3.txt' t = paramiko.Transport((hostname, 22)) t.connect(username=username, password=password) sftp = paramiko.SFTPClient.from_transport(t) sftp.put(mypath, remotepath)