我正在嘗試設(shè)置與 Paramiko 的跳轉(zhuǎn)主機(jī)連接。這是我的設(shè)置~/.ssh/configHost jump.csail.mit.edu GSSAPIAuthentication yes GSSAPIKeyExchange yes VerifyHostKeyDNS yesHost *.csail.mit.edu !jump.csail.mit.edu 128.52.* 128.30.* 128.31.* ProxyCommand ssh -W %h:%p jump.csail.mit.edu GSSAPIAuthentication yes GSSAPIDelegateCredentials yes GSSAPIKeyExchange yes如果我從終端連接它就可以工作。我還為 Paramiko 跳轉(zhuǎn)主機(jī)連接找到了這段代碼,我想知道我應(yīng)該根據(jù)上面的 ssh 配置設(shè)置設(shè)置什么jumpbox_public_addr?jumpbox_private_addrimport osimport paramikossh_key_filename = os.getenv('HOME') + '/.ssh/id_rsa'jumpbox_public_addr = '168.128.52.199'jumpbox_private_addr = '10.0.5.10'target_addr = '10.0.5.20'jumpbox=paramiko.SSHClient()jumpbox.set_missing_host_key_policy(paramiko.AutoAddPolicy())jumpbox.connect(jumpbox_public_addr, username='root', key_filename=ssh_key_filename)jumpbox_transport = jumpbox.get_transport()src_addr = (jumpbox_private_addr, 22)dest_addr = (target_addr, 22)jumpbox_channel = jumpbox_transport.open_channel("direct-tcpip", dest_addr, src_addr)target=paramiko.SSHClient()target.set_missing_host_key_policy(paramiko.AutoAddPolicy())target.connect(target_addr, username='root', key_filename=ssh_key_filename, sock=jumpbox_channel)stdin, stdout, stderr = target.exec_command("ifconfig")for line in stdout.read().split(b'\n'): print(str(line))target.close()jumpbox.close()
1 回答

喵喵時光機(jī)
TA貢獻(xiàn)1846條經(jīng)驗 獲得超7個贊
jumpbox_public_addr
是你的跳轉(zhuǎn)服務(wù)器的地址,應(yīng)該是什么jump.csail.mit.edu
。
jumpbox_private_addr
(src_addr
參數(shù)Transport.open_channel
) 是jump.csail.mit.edu
到目標(biāo)服務(wù)器的連接的源地址。一般來說,您并不關(guān)心這一點(因為您不關(guān)心大多數(shù) TCP 連接的源地址和端口)。它絕對不應(yīng)該是端口 22。下面應(yīng)該告訴服務(wù)器使用默認(rèn)值:
src_addr = ("0.0.0.0", 0)
添加回答
舉報
0/150
提交
取消