如何在Python中使用SSH连接从远程主机发送HTTP GET请求?
我正在使用paramiko的SSH连接. 我的代码: client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=remote_host, username=remote_user, password=remote_password, port=remote_port) 如何从连接的远程主机发送http GET请求(像代理一样使用)? 我根据答案找到了解决方案: with SSHTunnelForwarder( ssh_address_or_host=(remote_host, remote_port), ssh_username=remote_user, ssh_password=remote_password,
4 2023-05-22
编程技术问答社区
将Paramiko连接SFTPFile作为输入传给dask.dataframe.read_parquet
我试图通过class paramiko.sftp_file.SFTPFile而不是pandas.read_parquet的文件URL,并且效果很好.但是当我尝试使用Dask同样的事情时,它会丢下错误.以下是我尝试运行的代码和我遇到的错误.我该如何做这项工作? import dask.dataframe as dd import parmiko ssh=paramiko.SSHClient() sftp_client = ssh.open_sftp() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) source_file=sftp_client.open(str(parquet_file),'rb') full_df = dd.read_parquet(source_file,engine='pyarrow') print(len(full_df)) Traceback (most recent call la
0 2023-05-20
编程技术问答社区
使用Python在远程服务器上运行命令
cmd ="some command" echo "The answer is" echo $cmd 当我尝试使用python中的paramiko库运行上述命令时. 上面命令保存在命名命令的变量中. stdin,stdout,stderr = ssh_conn.exec_command(命令) 该过程不运行命令的" echo $ cmd"部分. 请帮助. 解决方案 首次安装paramiko pip3 install paramiko 然后用自己的命令尝试此代码: import paramiko client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: client.connect(hostname="192.168.1.100", username="user", password="pass") e
8 2023-05-19
编程技术问答社区
exec_command和indoke_shell方法的EOF错误
我正在尝试使用Python Paramiko从Windows机器上执行Linux服务器的命令,我使用了这两种方法 1.EXEC_COMMAND 2.invoke_shell 他们两个都给出了错误. import paramiko import time def ConnectSSH1(host, port, username, password): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(host, int(port), username, password) chan = ssh.invoke_shell() # Throws EOF error here #stdin, stdout, stderr = ssh.exec_command("ls") #Throws
14 2023-05-19
编程技术问答社区
SFTP服务器实现与Python
我需要使用Python实现SFTP服务器.我的要求是使用 之类的sftp命令将文件从远程计算机移至我的应用程序 copy configurations sftp:/// 可以使用Paramiko进行.如果是这样,任何有关如何完成的代码片段或文档将有所帮助. 解决方案 以下代码片段演示了SFTP客户端的简单实现 >>> import paramiko >>> pkey = paramiko.RSAKey.from_private_key_file('rsa.key') >>> transport = paramiko.Transport(('localhost', 3373)) >>> transport.connect(username='username', password='password', pkey=pkey) >>> sftp = paramiko.SFTPClient.from_transport(transpo
8 2023-05-19
编程技术问答社区
用Python通过ssh实现`lxc-attach`的自动化
问题: 如何自动化此过程,并包含所有密码提示? Machine 1> ssh user2@machine2 password: Machine 2> lxc-attach -n 0x1000 Container> ssh user3@machine3 password: Machine 3> get_temperature.sh temperature is 65C 背景: 我在计算机上运行了一些自动脚本(机器1),其中几个其他测试系统都从该脚本中级联.只有第一台计算机具有互联网访问和稳定状态.任何东西都可以安装在这里,自动化主要是python. 其他测试系统未连接到Internet,意外关闭,并经常擦拭内存.因此,我更改我在此自动脚本之外加载的任何设置或SSH键都不会保留.我只是在测试硬件;这些都不会在任何地方进行生产,我没有任何方法可以更改其重置状态. 尝试: 我试图在机器1上解决此运行的paramiko.我可以连接到Mach
2 2023-05-19
编程技术问答社区
Python Paramiko SSH Run命令
我想仅用于测试SSH连接的简单命令.关于stdin/out/err的错误.代码和错误mesage在下面. 有人可以帮我吗? 代码 import paramiko import sys client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect('x.x.x.x', port=2222, username='user', password='pass') stdin, stdout, stderr = client.exec_command('exit') print stdout client.close() 错误消息 Traceback (most recent call last): File "C:/Users/EXT03D3912/PycharmProjects/paramiko_ssh1/para
6 2023-05-19
编程技术问答社区
连接到SSH的Python被远程主机强行关闭
当我尝试连接到服务器 时 class ConnectToServer(): def connect_to_vps(self): port = 22 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(self.IP, port=port, username="root", password="123", timeout=3) ssh.close() scanner = ConnectToServer() scanner.connect_to_ssh() 我得到了这个错误, paramiko.ssh_exception.sshexception:错误读取SSH协议横幅[WinError 10054]现有连接被远程主机强行关闭 这只会发生有时
10 2023-05-19
编程技术问答社区
使用python中的paramiko执行SFTP命令
我想连接到SFTP服务器并执行命令,例如ls.但是我遇到了一个错误: paramiko.ssh_exception.sshexception:无法打开频道. import paramiko import pysftp ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('xxxxxxxx', username='xxxxxxx', password='xxxxxxxx', key_filename='xxxxxxxxxxx') stdin, stdout, stderr = ssh.exec_command('ls') print stdout.readlines() ssh.close() exit() 解决方案 似乎您认为您的代码执行SFTP ls命令.它不是.它试图执行ls shell 命令.您的服务器可能甚至不允许执行
40 2023-05-19
编程技术问答社区
使用ssh执行命令从自动执行的用户登录中获取输入信息
我有在登录尝试上运行脚本的Linux远程计算机,它将运行脚本,并且需要用户输入. 主要目的是测试登录用户,当登录到该用户时,带有自动订阅响应的密码. 远程计算机内的信息: $ cat /etc/passwd Remoteuser:dontcare:dontcare:dontcare:dontcare:/usr/bin/somescript.sh 当用户登录到Remoteuser时,SomeScript.sh将运行. 要求用户输入的脚本内容 $ read -p '>' tmp 我不想对该脚本进行任何更改. 登录示例 login: remoteuser Password: remoteuserpassword Quit Configuration (q, quit) 我有可能使用SSH命令发送用户输入吗? 目前,我的方法是使用Paramiko SSH, 连接= paramiko.sshclient()使用exec_comma
0 2023-05-19
编程技术问答社区
如何使用Paramiko Python从SFTP文件解码zip文件
我必须读取服务器中存在的zip,rar和7z文件,然后在此处提取以进行进一步处理.我正在使用Paramiko和Python.我有一个SFTP文件,但我无法通过Patool库将其传递. remote_file = sftp_client.open(output[i],'rb') sftp = ssh_client.open_sftp() file = ftp.file(output[i], "r", -1) lines = file.readlines() print(lines) patoolib.extract_archive(output[i], outdir=inputPath) 在这里output[i]是远程服务器zip文件路径. 解决方案 您无法使用SFTP协议在远程服务器上解解.这是不可能的. 您也不能使用客户端库来解压缩非本地文件.您必须下载档案(至少将其下载到内存),提取并上传提取的文件.什么可能很慢. 最好(如果您有shell访问权限)是在
6 2023-05-19
编程技术问答社区
转换Oracle SQL开发人员SSH主机,local端口向前连接到Python
我正在尝试通过SSH跳跃主机(我在Oracle SQL开发人员中成功创建的)来创建与远程服务器的Python连接,但无法在Python中复制.可以成功连接到SSH主机,但由于打开隧道的超时或错误,无法将端口转发到远程服务器.可以安全地假设我的代码不正确,而不是服务器问题.还需要一个解决方案,该解决方案不使用" with with with with sshtunnelforwarder()作为服务器:"方法是因为我需要一个类似于OSD/cx_oracle会话而不是批处理处理功能的连续会话. 使用paramiko,sshtunnel和cx_oracle提供了类似的示例(以及其他地方).许多其他示例不需要(或至少明确指定)远程服务器的单独登录凭据.我希望关键的不清楚的部分是将使用哪个本地主机 +端口,我的SQL开发人员连接不需要明确(尽管我尝试使用端口OSD选择,而不是同时使用). 最接近的比赛我认为是 paramiko-port -forwarding-around-a-nat
0 2023-05-19
编程技术问答社区
没有用cx_Freeze冻结的模块_cffi_。
我正在开发Pyside应用程序(python的QT),我想使用cx_freeze冻结它. 当我运行python setup.py build使用下面的设置文件时,它会在没有错误的情况下创建构建目录,但是当我生成的.exe文件时,我将获得下面显示的错误消息: from cx_Freeze import setup, Executable target = Executable( script="main_window.py", base = "Win32GUI", icon="images\\icon.ico" ) setup(name = "DemiurgoXMLgen" , version = "0.1" , description = "" , options={'build_exe': {'include_files': ['images\\']}}, executables = [target]
0 2023-05-19
编程技术问答社区
如何使用paramiko sshclient持续输出
我想进入远程服务器并运行一些Shell脚本(例如SCP或YUM等). 一切进展顺利,除了我无法持续地获得SCP Progress或YUM下载进度的STDOUT. f.read将被阻止,没有任何返回. 我猜Paramiko可能会按行传输伪造的Stdout流线,但这些渐进输出不输出线分隔符,而是'\ r'. 无论如何是否有解决这个问题? 这是我现在要捐的,其中ssh是paramiko.SSHClient() def read_buffer_line(f): line = "" while not f.channel.exit_status_ready(): c = f.read(1) if c == '\n': yield line line = '' else: line += c yield line + f.rea
6 2023-05-19
编程技术问答社区
如何通过Paramiko隧道(或类似软件包)连接到数据库
我遇到了严重的问题,在Paramiko中设置了适当的隧道,以启用数据库连接.我已经回顾了" forward.py"示例,但不了解如何将数据库连接链接到它.任何指针都不胜感激. 我认为我需要以下内容: t = paramiko.Transport((hostname, port)) t.connect(username=username, password=password, hostkey=hostkey) c = paramiko.Channel(t) #something about assigning a local port to this connection connection = psycopg2.connect(connectionstring) #and do my stuff connection.close() c.close() t.close() 解决方案 如果您使用forward.py脚本创建了SSH隧道;您可以使用SSH隧道到 c
0 2023-05-19
编程技术问答社区
Paramiko exec_command与思科路由器上的多个命令不提供任何输出
login_user = 'xyz' login_pass = 'xyz' ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(device, username=login_user, password=login_pass, look_for_keys=False, timeout=5) print "success loggedin" stdin, stdout, stderr = ssh.exec_command("term len 0 ; show int desc | i Tu ; show ip interface brief | in Tunnel ; show ip bgp vpnv4 vrf AWS summary | i 169.25 ; show ip route vrf AWS bgp") all_output = stdo
8 2023-05-19
编程技术问答社区
Python多处理Paramiko SSH连接
我正在编写一个脚本以连接到一堆Cisco路由器并在其上运行命令,将主机和命令放入文本文件中,然后从脚本中读取.以下是我得到的代码,当我不使用池时.映射一切都很好,但是当尝试使用池时.映射要产生更多的过程,我会遇到错误. #!/usr/bin/python #Import modules from multiprocessing.pool import ThreadPool import sys, os import paramiko import time import getpass import socket def unpack_call(callable_arguments): callable, arguments = callable_arguments return callable(*arguments) def conn(host, commands): # Create instance of SSH client object remo
8 2023-05-19
编程技术问答社区
Python代码以建立远程服务器的SSH,然后连接到MySQL
我正在尝试编写一些Python代码,以建立与远程服务器的SSH连接,然后执行一些MySQL查询(为简单起见,我将这些连接排除在示例之外).据我所知,SSH正在工作,但我似乎无法进入数据库.谁能帮忙? import MySQLdb import decimal import operator import os import paramiko mykey = paramiko.RSAKey.from_private_key_file("C:/Users/Desktop/keyname.pem") ssh = paramiko.SSHClient() ssh.load_system_host_keys() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('ec2-blah-blah.compute.amazonaws.com', username='ec2-user', pkey =
2 2023-05-19
编程技术问答社区
如何处理 Python Paramiko 中提出的错误?
self.ssh = paramiko.SSHClient() self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: self.ssh.connect(self.hostname, username=self.username, password=self.password) except SSHException: #do something 我想知道在尝试连接到SSH服务器时如何处理Paramiko引起的错误? 解决方案 取决于您的应用程序. 这是一些可能的动作: 终止 重试 记录错误并继续做其他事情
4 2023-05-19
编程技术问答社区
与Python paramiko连接到SSH服务器,除了密码提示还需要提交键盘交互式横幅外
使用Putty命令行,我与PAM上下文下的Unix主机连接. 连接字符串是 domain/user-name@pam-functional-account@unix-host@pam-load-balancer-address:4422 在油灰命令行中,我使用了以下 putty.exe -ssh domain/user-name@pam-functional-account@unix-host@pam-load-balancer-address 4422 -pw xxx 这将向主机和登录打开Putty SSH会话.在油灰控制台中,它显示了用户名 domain/user-name@pam-functional-account@unix-host 我想通过SSH库Paramiko执行相同的操作.我一直将pam-load-balancer-address保留为我的主机,4422作为端口,domain/user-name@pam-functional-accoun
18 2023-05-19
编程技术问答社区