相关疑难解决方法(0)

与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万
查看次数

使用paramiko进行端口转发

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

谁能帮我吗?

python ssh paramiko

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

使用跳转主机和远程数据库进行 SSH 隧道转发

我有一个托管在 Amazon RDS(“D”)上的远程 MySQL 数据库。出于安全目的,它只能通过远程服务器(“C”)访问。C 可通过跳转主机“B”通过 ssh 访问。我需要一个双 ssh 隧道来访问远程 SQL 主机。

[A: local host] -> [B: jump host] -> [C: target host] => [D: RDS MySQL host]
Run Code Online (Sandbox Code Playgroud)

我想通过 Python 访问 D,使用 paramiko 和/或 sshtunnel。我能找到的所有信息都涉及:

python sql ssh sqlalchemy paramiko

6
推荐指数
1
解决办法
7527
查看次数

paramiko:SSH端口转发以获取SQL转储

我正在尝试使用python脚本从中间主机作为代理的远程主机获取SQL转储,如下所示:

local machine -> proxy -> remote
Run Code Online (Sandbox Code Playgroud)

代理服务器必须存在,因为远程主机仅允许通过该代理服务器的连接。

注意:我在如何通过Paramiko隧道(或类似软件包)连接到数据库时也意识到了类似的问题,但是该解决方案似乎特定于PostgreSQL。

我正在通过paramiko使用SSH建立连接。我知道forward.py是端口转发的paramiko示例,但是我不确定我是否使用正确。这就是我所做的(PX =代理,RMT =远程):

forward.py --password --host=PX --port=PXport --user=PXusr RMT:RMTport
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

*** Unable to open host keys file
*** Warning: no host key for PX
Connecting to ssh host PX:PXport ...
Now forwarding port 4000 to RMT:RMTport ...
Run Code Online (Sandbox Code Playgroud)

脚本然后停留在最后一行。

Q1:有没有人举过一个例子,说明如何使用paramiko的forward.py通过代理连接到远程主机?

Q2:建立连接后,是否可以在远程主机上以编程方式执行Shell命令?

proxy paramiko tunneling

5
推荐指数
1
解决办法
3915
查看次数

标签 统计

paramiko ×4

python ×3

ssh ×3

proxy ×1

sql ×1

sqlalchemy ×1

tunneling ×1