相关疑难解决方法(0)

帕拉米科"未知服务器"

我正在尝试开始使用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万
查看次数

Paramiko:NAT路由器周围的端口转发

组态

  • LOCAL:本地计算机,它将创建一个ssh连接并在REMOTE框上发出命令.
  • PROXY:一个EC-2实例,具有对LOCAL和REMOTE的ssh访问权限.
  • REMOTE:位于NAT路由器后面的远程计算机(LOCAL无法访问,但会打开与PROXY的连接并允许LOCAL隧道连接到它).

端口转发步骤(通过命令行)

  1. 创建从REMOTE到PROXY的ssh连接,以将REMOTE计算机上端口22上的ssh流量转发到PROXY服务器上的端口8000.

    #从REMOTE机器运行
    ssh -N -R 0.0.0.0:8000:localhost:22 PROXY_USER @ PROXY_HOSTNAME

  2. 创建一个从LOCAL到PROXY的ssh隧道,并将来自LOCAL:1234的ssh流量转发到PROXY:8000(然后转发到REMOTE:22).

    #从LOCAL机器运行
    ssh -L 1234:localhost:8000 PROXY_USER @ PROXY_HOSTNAME

  3. 创建从LOCAL到REMOTE的转发ssh连接(通过PROXY).

    #在新的终端窗口中从LOCAL机器运行
    ssh -p 1234 REMOTE_USER @ localhost

    #我现在已经转到REMOTE框并可以运行命令

帕拉米科研究

我查看了一些与使用Paramiko进行端口转发相关的问题,但它们似乎并未解决这种特定情况.

我的问题

如何使用Paramiko运行上面的步骤2和3?我基本上想运行:

import paramiko

# Create the tunnel connection
tunnel_cli = paramiko.SSHClient()
tunnel_cli.connect(PROXY_HOSTNAME, PROXY_PORT, PROXY_USER)

# Create the forwarded connection and issue commands from LOCAL on the REMOTE box
fwd_cli = paramiko.SSHClient()
fwd_cli.connect('localhost', LOCAL_PORT, REMOTE_USER)
fwd_cli.exec_command('pwd')
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko

11
推荐指数
1
解决办法
8168
查看次数

标签 统计

paramiko ×2

python ×2

ssh ×2

macos ×1