x11 переадресация с paramiko

Я пытаюсь запустить команду сparamiko это должно быть в состоянии открыть окно X. Сценарий, который я использую, будет выглядеть следующим образом:

import paramiko                                    

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect('192.168.122.55', username='user', password='password')
transport = ssh_client.get_transport()
session = transport.open_session()

session.request_x11()
stdin = session.makefile('wb')
stdout = session.makefile('rb')
stderr = session.makefile_stderr('rb')
session.exec_command('env; xterm')
transport.accept()

print 'Exit status:', session.recv_exit_status()
print 'stdout:\n{}'.format(stdout.read())
print 'stderr:\n{}'.format(stderr.read())
session.close()

К сожалению, когда я запускаю скрипт выше, я получаю такой вывод:

Exit status: 1
stdout:
SHELL=/bin/bash
XDG_SESSION_COOKIE=8025e1ba5e6c47be0d2f3ad6504a25ee-1347286654.617967-1932974971
SSH_CLIENT=192.168.122.1 58654 22
USER=user
MAIL=/var/mail/user
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/user
LANG=en_US.UTF-8
SHLVL=1
HOME=/home/user
LOGNAME=user
SSH_CONNECTION=192.168.122.1 58654 192.168.122.55 22
DISPLAY=localhost:10.0
_=/usr/bin/env

stderr:  
xterm: Xt error: Can't open display: localhost:10.0

Если я запускаю следующую команду в терминале:

ssh -X [email protected] 'env; xterm'

затем я получаю те же переменные среды (хотя некоторые порты изменились), поэтому я говорю, что моя среда правильная. Тем не менее, мне все еще не хватает чего-то сделатьparamiko работа с пересылкой x11.

Я попробовал пару вещей:

Use the handler parameter in request_x11: aside from printing values, I didn't get any further than with the default handler. Use the auth_cookie parameter in request_x11: tried to hardcode a cookie value that was being used according to the xauth list output. The idea of doing this was to avoid problems that might happen according to the documentation string in paramiko itself:

If you omit the auth_cookie, a new secure random 128-bit value will be generated, used, and returned. You will need to use this value to verify incoming x11 requests and replace them with the actual local x11 cookie (which requires some knoweldge of the x11 protocol).

Есть ли что-то еще, что я мог бы сделать, чтобы это работало или решало проблему?

Замечания: Это было ранее задано в:

superuser: the only response points to the request_x11 documentation I've already tried to use to no avail. stackoverflow: the accepted response suggests to use the handler parameter, but it's wrong. github: no answer provided for more than a year.

Ответы на вопрос(5)

Ваш ответ на вопрос