- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
本质上,我需要访问一台计算机,比如机器 A,它只能通过我公司的内部网络访问。我曾经能够设置 tcprelay 端口转发来完成此操作,但由于某些潜在的安全漏洞,该管道已被禁用。
假设我公司的通用网络位于公司@10.0.0.1我想使用的具体机器是机器@10.0.0.3
两个账号都有密码‘password’
通过终端和 shell 命令,我可以使用一个命令跳到那里: https://askubuntu.com/a/311457
或者,在步骤中,它将是:
[on my account] ssh company@10.0.0.1
[on my account] enter password
[on company network] ssh machine @10.0.0.3
[on company network] enter password again
我会登录到我需要与之通信的机器。
但是,经过一下午的努力,我无法使用 Paramiko 进行此操作。我尝试建立连接然后发出 client.exec_command() 但就是无法获得特定机器的句柄。我的其余脚本依赖于拥有一个可以接收命令并返回响应的 paramiko 客户端,因此如果我切换到结构或子进程,传播所有更改对我来说将是一个非常沉重的开销。
我最接近的是:
ssh.connect(’10.0.0.1', username=‘company', password=‘password’)
chan = ssh.get_transport().open_session()
chan.get_pty()
chan.exec_command(‘ssh machine@10.0.0.3’)
print chan.recv(1024)
它返回了“输入密码”提示,但运行 chan.send(‘password’)
只是以挂起结束。
此时我正在紧张地阅读文档,希望找到我遗漏的概念。
如果有人能提供一些建议,我将不胜感激。
谢谢!
最佳答案
另一种方法是在登录另一台机器时避免输入密码。这可以通过使用 ssh-keygen 来完成。
以用户“first”登录到第一台机器 (A):$ ssh-keygen -t rsa--> 请求时不要输入任何密码--> 记下“您的公钥已保存在/home/first/.ssh/”这一行--> 这个文件是机器'A'的公钥
现在使用 ssh 登录到第二台机器 (B)。然后检查 ~/.ssh 文件夹。如果没有文件夹,请创建一个。在 ~/.ssh/authorized_keys 下创建名为“authorized_keys”的文件
将“第一个”用户的文件内容复制到“authorized_keys”文件中。 是来自“第一个”用户登录的带有“id_rsa.pub”的文件(在/home/first/.ssh/id_rsa.pub 下)
现在您可以从第一台机器登录到第二台机器,而无需通过脚本输入密码。
关于python - 如何使用 Paramiko 通过中间主机 SSH 连接到机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36855378/
我不是 C 程序员。有什么想法吗? 这是我尝试过的安装命令: pip install paramiko sudo pip install paramiko 输出: src/_fastmath.c:15
Importing paramiko throws following exception on Python3. Traceback (most recent call last): File
我正在编写一个 Python 脚本,需要下载远程 xml 文件来解析它。 我正在使用 paramiko。 这是脚本: def copyFile(ip, user, pwd, remotePath, l
好的,所以我正在尝试在我的 python 脚本中实现 paramiko。 目的是连接同一局域网内的另一台PC,通过python执行命令。 我的 python 版本: Python 2.7.6 (def
我正在调试一些代码,这将导致我不断地登录/退出一些外部 sftp 服务器。有谁知道如果代码中出现非 paramiko 异常,paramiko 是否会自动关闭外部服务器上的 ssh/sftp sessi
我不断收到以下错误: Traceback (most recent call last): File "/home/d/workspace/paramiko/connect_test/main.p
我正在尝试通过 SSH 从 Python 远程执行命令,在这种特殊情况下需要将 stdin 重定向到/dev/null。 也就是说,与使用带有 -n 标志的 OpenSSH 客户端相同: ssh -n
当我尝试打开 mysql 工作台时,它显示“导入错误:没有名为 paramiko 的模块;操作失败:无法启动 SSH 隧道管理器”,尽管我已经安装了 paramiko。我正在使用 python 2.7
我正在尝试使用 paramiko 通过 netcat 反弹 SSH session : MyLocalMachine ----||----> MiddleMachine --(netcat)-->
我目前正在开发一个程序,该程序尝试联系运行 Cisco IOS 的众多路由器以获取其当前配置。我正在尝试使用 Paramiko 模块的 SSHClient 来实现这一点目的: def get_conf
我有基于 paramiko 模块的 python 2.7 代码,我想将其移植到 python 3.3,但我似乎找不到可以工作的 paramiko 版本或合适的替代版本。 我需要该模块在 Windows
我正在尝试运行使用 SSHLibrary 的机器人框架测试用例。我已经安装了所有必需的库(在本例中为 paramiko)。但我仍然收到此错误。 我得到的错误是: Error in file '/opt
有什么方法可以在后台运行 mysql 命令或保持连接事件一段时间,以便可以对其执行查询。可以用nohup来实现吗?如果是,怎么办? 最佳答案 是的,你可以用ajax来做到这一点 使用Nohup你可以做
我正在尝试在 python 中使用 paramiko 执行一个简单的代理命令。 基本上我正在尝试复制此 ssh 命令的行为: ssh -i ~/.ssh/destination_key user@de
This question already has answers here: Pass input/variables to command/script over SSH using Python
Paramiko 支持基于证书的身份验证吗? connect 方法中的 key_filename 提到它同时支持私钥和证书,这里的证书是指基于证书的身份验证吗? key_filename (str)
我刚刚尝试与 paramiko 进行 ssh 连接。一切看起来都很好,但在最后一步,当调用 close() 方法断开客户端连接时。 这是我的脚本: #!/usr/bin/python import p
上下文 如果有一个连接到服务器的脚本,然后 curl 本地主机以获取我需要的信息 问题 我的问题是,我需要从大约 200 台服务器获取信息,我使用的方法大约需要 15 分钟才能完成,这还不错,但我想做
我在尝试关闭 Paramiko SFTP 连接时遇到问题。即使我调用关闭连接仍然挂起,我通过运行 netstat (Windows) 检查: netstat -an | find ":22" 和pyt
localpath = 'U:\\' utime = sftp.stat("/TestBTEC/").st_mtime last_modified = datetime.fromtimestamp(u
我是一名优秀的程序员,十分优秀!