标签: paramiko

与Paramiko嵌套的SSH会话

我正在重写我写入Python的Bash脚本.那个剧本的关键是

ssh -t first.com "ssh second.com very_remote_command"
Run Code Online (Sandbox Code Playgroud)

我在使用paramiko进行嵌套身份验证时遇到问题.我无法找到任何处理我的确切情况的例子,但我能够在远程主机上找到sudo的例子.

第一种方法写入stdin

ssh.connect('127.0.0.1', username='jesse', password='lol')
stdin, stdout, stderr = ssh.exec_command("sudo dmesg")
stdin.write('lol\n')
stdin.flush()
Run Code Online (Sandbox Code Playgroud)

第二个创建一个通道并使用类似socket的sendrecv.

我能够让stdin.writesudo一起工作,但它不能与远程主机上的ssh一起使用.

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('first.com', username='luser', password='secret')
stdin, stdout, stderr = ssh.exec_command('ssh luser@second.com')
stdin.write('secret')
stdin.flush()
print '---- out ----'
print stdout.readlines()
print '---- error ----'
print stderr.readlines()

ssh.close()
Run Code Online (Sandbox Code Playgroud)

... ...打印

---- out ----
[]
---- error ----
['Pseudo-terminal will not be allocated …
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko

32
推荐指数
3
解决办法
4万
查看次数

使用python使用ssh从服务器读取文件

我正在尝试使用python中的ssh从服务器读取文件.我正在使用paramiko进行连接.我可以连接到服务器并运行像'cat filename'这样的命令并从服务器获取数据,但我尝试读取的一些文件大小约为1 GB或更多.

如何使用python逐行读取服务器上的文件?

附加信息:经常做的是运行'cat filename'命令并将结果存储在变量中并解决该问题.但由于这里的文件非常大,我正在寻找一种逐行读取文件的方法.

编辑:我可以读取一堆数据并将其拆分成行,但问题是缓冲区中接收的数据并不总是包含完整的行.例如,如果缓冲区有300行,则最后一行可能只是服务器上行的一半,下一半将在下次调用服务器时获取.我想要完整的线条

编辑2:我可以使用什么命令在特定范围内的文件中打印行.喜欢打印前100行,那么接下来的100行等等?这样缓冲区将始终包含完整的行.

python ssh paramiko

31
推荐指数
4
解决办法
7万
查看次数

如何使用python和paramiko创建ssh隧道?

我正在学习python.我需要隧道创建者从数据库中读取信息并关闭隧道.我使用paramiko,但我没有使用tonelem示例.请举一个简单代码创建隧道的例子.

提前致谢!

python ssh paramiko

29
推荐指数
3
解决办法
5万
查看次数

使用PAramiko'放入'SFTP

我安装并编写了以下无法放入文件的Paramiko.它很容易'获取'文件并在其上执行'ls'命令.

#set username & password
username='runaway'
password='runaway'
port=22
source= '/Unzip.sh' 
destination ='/var/mpx/www/http'


#SFTP
client.load_system_host_keys()
print " hostname =%s \n username=%s \n password=%s \n" (hostname,username,password)
t = paramiko.Transport((hostname, port)) 
t.connect(username=username,password=password)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(source,destination)
#sftp.close()
#t.close()
Run Code Online (Sandbox Code Playgroud)

使用'put'命令会出现以下错误和堆栈跟踪 -

File "upload_file.py", line 84, in ?
    sftp.put(source,destination)
  File "/usr/lib/python2.4/site-packages/paramiko/sftp_client.py", line 522, in put
    fr = self.file(remotepath, 'wb')
  File "/usr/lib/python2.4/site-packages/paramiko/sftp_client.py", line 221, in open
    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
  File "/usr/lib/python2.4/site-packages/paramiko/sftp_client.py", line 572, in _request
    return self._read_response(num)
  File "/usr/lib/python2.4/site-packages/paramiko/sftp_client.py", line 619, in …
Run Code Online (Sandbox Code Playgroud)

python sftp paramiko

27
推荐指数
1
解决办法
3万
查看次数

帕拉米科"未知服务器"

我正在尝试开始使用Paramiko库,但是当我尝试连接以下简单程序时,库就会抛出异常:

import paramiko
ssh = paramiko.SSHClient()
ssh.connect('127.0.0.1', username='boatzart', password='mypassword')
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Traceback (most recent call last):
File "test.py", line 6, in <module>
ssh.connect('127.0.0.1')
File "build/bdist.macosx-10.7-intel/egg/paramiko/client.py", line 316, in connect
File "build/bdist.macosx-10.7-intel/egg/paramiko/client.py", line 85, in missing_host_key
paramiko.SSHException: Unknown server 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

无论我尝试哪种服务器都会发生这种情况

python macos ssh paramiko

27
推荐指数
5
解决办法
3万
查看次数

用于ssh处理的python库

我打算写第一个代码有关Python处理SSH命令,我也搜索过计算器,可以看到有可用于处理通过ssh过去了,像命令几个Python库的paramiko,Pexpect的,也许一些人.

特别是,我需要从远程服务器读取文件的内容,通过ssh/scp复制文件,在远程服务器上启动脚本后从远程服务器获取输出.

也许一些专家可以建议哪个库更好,并指出优点或缺点?

python ssh paramiko pexpect libraries

26
推荐指数
3
解决办法
6万
查看次数

paramiko没有现有的会话例外

使用本地运行的python交互式shell和openssh,我使用paramiko继续获得"No existing session"异常.我的代码如下.

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('localhost',username=name,password=pw)
Run Code Online (Sandbox Code Playgroud)

结果是:

No handlers could be found for logger "paramiko.transport"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/paramiko-1.7.7.1-py2.6.egg/paramiko/client.py", line 332, in connect
    self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
  File "/usr/local/lib/python2.6/dist-packages/paramiko-1.7.7.1-py2.6.egg/paramiko/client.py", line 493, in _auth
    raise saved_exception
paramiko.SSHException: No existing session
Run Code Online (Sandbox Code Playgroud)

我以前能够连接,但一直试图调整这个以允许基于密钥的授权.那失败了,从那时起我就无法在本地连接.我试过重启openssh,并成功连接到另一台服务器.在这里搜索之后,我发现的所有内容都是授权例外,这里似乎并非如此.

python ssh paramiko

24
推荐指数
3
解决办法
2万
查看次数

在Python中使用SFTP上载文件,但如果路径不存在则创建目录

我想用Python上传远程服务器上的文件.我想事先检查远程路径是否真的存在,如果不存在,则要创建它.在伪代码中:

if(remote_path not exist):
    create_path(remote_path)
upload_file(local_file, remote_path)
Run Code Online (Sandbox Code Playgroud)

我正在考虑在Paramiko中执行命令来创建路径(例如mkdir -p remote_path).我想出了这个:

# I didn't test this code

import paramiko, sys

ssh = paramiko.SSHClient()
ssh.connect(myhost, 22, myusername, mypassword)
ssh.exec_command('mkdir -p ' + remote_path)
ssh.close

transport = paramiko.Transport((myhost, 22))
transport.connect(username = myusername, password = mypassword)

sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(local_path, remote_path)
sftp.close()

transport.close()
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案对我来说听起来不太好,因为我关闭连接然后再次重新打开它.有没有更好的方法呢?

python ssh sftp paramiko

24
推荐指数
4
解决办法
4万
查看次数

使用pycrypto时没有名为'winrandom'的模块

我花了两天时间尝试为Paramiko模块安装pyCrypto.

所以,我遇到的第一个问题是:

>>> import paramiko
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31
, in <module>
    from paramiko.transport import SecurityOptions, Transport
  File "C:\Program Files\Python\lib\site-packages\paramiko\transport.py", line 4
7, in <module>
    from paramiko.dsskey import DSSKey
  File "C:\Program Files\Python\lib\site-packages\paramiko\dsskey.py", line 26,
in <module>
    from Crypto.PublicKey import DSA
ImportError: No module named 'Crypto'
Run Code Online (Sandbox Code Playgroud)

实际上它非常有趣,因为我使用Windows并且它不关心大写.我将文件夹名称从crypto更改为Crypto,这个特殊问题消失了.

现在它想要winrandom:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31
, in <module>
    from paramiko.transport …
Run Code Online (Sandbox Code Playgroud)

python windows paramiko pycrypto

24
推荐指数
2
解决办法
2万
查看次数

paramiko不兼容的ssh peer(没有可接受的kex算法)

尝试使用paramiko库ssh到Cisco ACS设备时出现以下错误.我已经在python中使用了paramiko而没有问题,我可以从命令行ssh到这个框,或者使用putty而没有问题.我打开了调试并在这里复制了信息.如果你能帮助我,请告诉我.

import paramiko
import sys
import socket

try:
    paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)
    sshConnection = paramiko.SSHClient()
    sshConnection.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    sshConnection.connect('server',username='username',password='password')
except paramiko.BadAuthenticationType:
    sys.stdout.write('Bad Password!\n')     
    sys.exit()
except paramiko.SSHException, sshFail:
    sys.stdout.write('Connection Failed!\n')
    sys.stdout.write('%s\n' % sshFail)
    sys.exit()
except socket.error, socketFail:
    sys.stdout.write('Failed to open socket\n')
    sys.stdout.write('%s\n' % socketFail)
    sys.exit()
Run Code Online (Sandbox Code Playgroud)

并返回调试输出:

DEBUG:paramiko.transport:starting thread (client mode): 0x14511d0L
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_5.3)
DEBUG:paramiko.transport:kex algos:['diffie-hellman-group14-sha1'] server key:['ssh-rsa'] client encrypt:['aes256-cbc', 'aes128-cbc', '3des-cbc'] server encrypt:['aes256-cbc', 'aes128-cbc', '3des-cbc'] client mac:['hmac-sha1'] server mac:['hmac-sha1'] client compress:['none', 'zlib@openssh.com'] server compress:['none', 'zlib@openssh.com'] client lang:[''] server lang:[''] kex follows?False
ERROR:paramiko.transport:Exception: …
Run Code Online (Sandbox Code Playgroud)

python ssh cisco paramiko

23
推荐指数
2
解决办法
3万
查看次数

标签 统计

paramiko ×10

python ×10

ssh ×8

sftp ×2

cisco ×1

libraries ×1

macos ×1

pexpect ×1

pycrypto ×1

windows ×1