标签: paramiko

paramiko上的目录传输

你如何使用paramiko传输完整的目录?我正在尝试使用:

sftp.put("/Folder1","/Folder2")
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误 -

Error : [Errno 21] Is a directory
Run Code Online (Sandbox Code Playgroud)

python paramiko

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

python paramiko模块中长时间运行的ssh命令(以及如何结束它们)

我想tail -f logfile使用python的paramiko模块在远程机器上运行命令.到目前为止,我一直在尝试以下方式:

interface = paramiko.SSHClient()
#snip the connection setup portion
stdin, stdout, stderr = interface.exec_command("tail -f logfile")
#snip into threaded loop
print stdout.readline()
Run Code Online (Sandbox Code Playgroud)

我希望命令在必要时运行,但我有两个问题:

  1. 我该如何干净利落地停下来?我考虑制作一个频道,然后shutdown()在我通过时使用频道上的命令 - 但这看起来很混乱.有可能做一些像发送Ctrl-C到频道的标准输入的东西吗?
  2. readline() 块,如果我有一个非阻塞的输出方法,我可以避免线程 - 任何想法?

python ssh paramiko

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

Paramiko 身份验证失败,并显示“同意​​‘rsa-sha2-512’公钥算法”(以及 sshd 日志中的“不支持的公钥算法:rsa-sha2-512”)

我有一个在 CentOS Linux 7.7 上运行的 Python 3 应用程序,对远程主机执行 SSH 命令。它工作正常,但今天我在对“新”远程服务器(基于 RHEL 6.10 的服务器)执行命令时遇到了一个奇怪的错误:

遇到 RSA 密钥,预期的 OPENSSH 密钥

从系统 shell 执行相同的命令(当然使用相同的私钥)效果非常好。

在远程服务器上,我发现/var/log/secure当使用 Python(使用 Paramiko)从源服务器发出 SSH 连接和命令时,sshd 会抱怨不支持的公钥算法:

userauth_pubkey:不支持的公钥算法:rsa-sha2-512

请注意,具有更高 RHEL/CentOS(如 7.x)的目标服务器不会遇到此问题。

看起来 Paramiko 在与远程服务器协商时选择/提供了错误的算法,而相反 SSH shell 在此“旧”目标服务器的上下文中正确执行协商。如何让Python程序按预期工作?

Python代码

import paramiko
import logging

ssh_user = "my_user"
ssh_keypath = "/path/to/.ssh/my_key.rsa"
server = "server.tld"

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh_client.connect(server,port=22,username=ssh_user, key_filename=ssh_keypath)  

# SSH command
cmd = "echo TEST : $(hostname)"

stdin, stdout, stderr = ssh_client.exec_command(cmd, get_pty=True)
exit_code = stdout.channel.recv_exit_status() 

cmd_raw_output = stdout.readlines() …
Run Code Online (Sandbox Code Playgroud)

python linux ssh paramiko

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

Paramiko和Pseudo-tty分配

我正在尝试使用Paramiko连接到远程主机并执行一些文本文件替换.

i, o, e = client.exec_command("perl -p -i -e 's/" + initial + "/" 
                              + replaced + "/g'" + conf);
Run Code Online (Sandbox Code Playgroud)

其中一些命令需要以sudo身份运行,这会导致:

sudo:对不起,你必须有一个tty来运行sudo

我可以使用-t开关和ssh强制伪tty分配.

是否有可能使用paramiko做同样的事情?

python ssh paramiko

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

使用paramiko进行端口转发

我正在尝试使用paramiko从python应用程序进行一些端口转发.我可以很好地设置SSH连接,但我对如何使用paramiko.transport感到有点难过.我已经找到了这个文件,但我无法弄清楚它里面发生了什么.从查看paramiko.Transport 文档,似乎单行使用open_channel函数,但我无法弄清楚如何实现它.我正在尝试复制一个简单的ssh -L 8000:localhost:8000.

谁能帮我吗?

python ssh paramiko

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

在执行Python Paramiko的命令后,我如何保存结果?

如下所示,是否可以保存结果?原因,在第二和第三stdout.read()我无法达到结果.

import paramiko
import os
dssh = paramiko.SSHClient()
dssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
dssh.connect('192.168.1.250', username='root', password='pass')
import os
stdin, stdout, stderr = dssh.exec_command('ifconfig')
print stdout.read()
print ('Sleeping 2 seconds!')
os.system('sleep 2')
stdin, stdout, stderr = dssh.exec_command('ls -l')
print stdout.read()
print stdout.read()
print stdout.read()
dssh.close()
Run Code Online (Sandbox Code Playgroud)

python save paramiko

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

来自cyptography.hazmat.bindings._constant_time import lib的导入错误

所以我正在尝试创建一个aws lambda函数,登录实例并做一些事情.并且该脚本在lambda之外工作正常,但是当我使用与此https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/相同的说明打包它时,它不会工作.它抛出了这个错误.

libffi-72499c49.so.6.0.4: cannot open shared object file: No such file or directory: ImportError
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 12, in lambda_handler
    key = paramiko.RSAKey.from_private_key(key)
  File "/var/task/paramiko/pkey.py", line 217, in from_private_key
    key = cls(file_obj=file_obj, password=password)
  File "/var/task/paramiko/rsakey.py", line 42, in __init__
    self._from_private_key(file_obj, password)
  File "/var/task/paramiko/rsakey.py", line 168, in _from_private_key
    self._decode_key(data)
  File "/var/task/paramiko/rsakey.py", line 173, in _decode_key
    data, password=None, backend=default_backend()
  File "/var/task/cryptography/hazmat/backends/__init__.py", line 35, in default_backend
    _default_backend = MultiBackend(_available_backends())
  File "/var/task/cryptography/hazmat/backends/__init__.py", line 22, in _available_backends
    "cryptography.backends" …
Run Code Online (Sandbox Code Playgroud)

python paramiko amazon-web-services aws-lambda

19
推荐指数
2
解决办法
9213
查看次数

关闭Paramiko的登录

我使用Paramiko提供的ssh客户端来创建一个函数调用'remoteSSH'(文件名是remoteConnect.py):

import paramiko
import logging
logger = paramiko.util.logging.getLogger()
logger.setLevel(logging.WARN)

def remoteSSH(username,userpasswd):
    ....
Run Code Online (Sandbox Code Playgroud)

现在我在另一个名为getData()(getdata.py)的Python模块中调用remoteSSH函数:

from remoteConnect import *
import logging
logger2=logging.getLogger()
logger2.setLevel(logging.INFO)
Run Code Online (Sandbox Code Playgroud)

但是,调用logger2.info('ccc')也会打开导入Paramiko模块的文件中的所有INFO级别日志记录(即remoteConnect.py)

如何关闭登录remoteConnect.py以便Paramiko不会吐出所有INFO级别的消息?

python logging paramiko

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

paramiko(python)超时

我正在寻找一种为此设置超时的方法:

transport = paramiko.Transport((host, port))
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.get(remotepath, localpath)
sftp.close()
transport.close()
Run Code Online (Sandbox Code Playgroud)

python ssh timeout scp paramiko

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

Paramiko - 在OS X上使用加密的私钥文件

我正在尝试使用Paramiko从Python连接到SSH服务器.这是我到目前为止所尝试的:

>>> import paramiko
>>> import os
>>> privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')
>>> mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/paramiko/pkey.py", line 198, in from_private_key_file
    key = cls(filename=filename, password=password)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/paramiko/rsakey.py", line 51, in __init__
    self._from_private_key_file(filename, password)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/paramiko/rsakey.py", line 163, in _from_private_key_file
    data = self._read_private_key_file('RSA', filename, password)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/paramiko/pkey.py", line 280, in _read_private_key_file
    data = self._read_private_key(tag, f, password)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/paramiko/pkey.py", line 323, in _read_private_key
    raise PasswordRequiredException('Private key file is encrypted')
paramiko.PasswordRequiredException: Private …
Run Code Online (Sandbox Code Playgroud)

ssh paramiko osx-mountain-lion private-key

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