Ошибка: не удается открыть отображение: (null) при использовании Xclip для копирования открытого ключа ssh - программирование
Подтвердить что ты не робот

Ошибка: не удается открыть отображение: (null) при использовании Xclip для копирования открытого ключа ssh

Следующее в Создание SSH-ключей, говорится

sudo apt-get install xclip

# Загрузки и установка xclip. Если у вас нет apt-get, вам может потребоваться использовать другой установщик (например, yum)

xclip -sel clip < ~/.ssh/id_rsa.pub

# Копирует содержимое файла id_rsa.pub в буфер обмена

Но после запуска xclip -sel clip < ~/.ssh/id_rsa.pub я получаю Error: Can't open display: (null) В чем проблема? Я googled вокруг но ничего не нашел об этом

4b9b3361

Ответ 1

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub у меня не работает (ubuntu 14.04), но вы можете использовать:

cat ~/.ssh/id_rsa.pub

получить ваш открытый ключ

Ответ 2

В зависимости от даты этого вопроса оригинальный плакат не использовал бы подсистему Windows для Linux. Но если вы, и получаете ту же ошибку, следующие альтернативные работы:

clip.exe < ~/.ssh/id_rsa.pub

Благодаря этой странице для указания на то, что Windows 'clip.exe(и вы должны ввести ".exe" ), можно запускать из оболочка bash.

Ответ 3

Это был слишком хороший ответ, чтобы не публиковать его здесь. Это от Жиля, такого же пользователя из Askubuntu:

Буфер обмена предоставляется X-сервером. Не имеет значения, является ли сервер автономным или нет, важно то, что ваш локальный графический сеанс доступен для программ, запущенных на удаленном компьютере. Благодаря прозрачному для сети X дизайну это возможно.

Я предполагаю, что вы подключаетесь к удаленному серверу с SSH с компьютера под управлением Linux. Убедитесь, что переадресация X11 включена как в конфигурации клиента, так и в конфигурации сервера. В конфигурации клиента вам нужно иметь строку ForwardX11 yes в ~/.ssh/config чтобы ForwardX11 yes ее по умолчанию, или передать параметр -X команде ssh только для этого сеанса. В конфигурации сервера вам нужно иметь строку X11Forwarding yes в /etc/ssh/sshd_config (она присутствует по умолчанию в Ubuntu).

Чтобы проверить, включена ли пересылка X11, посмотрите значение переменной окружения DISPLAY: echo $DISPLAY. Вы должны увидеть значение наподобие localhost:10 (приложениям, работающим на удаленном компьютере, говорят, что они должны подключаться к дисплею, работающему на том же компьютере, но это соединение дисплея фактически передается по SSH на дисплей на стороне клиента). Обратите внимание, что если DISPLAY не установлен, его не нужно настраивать вручную: переменная окружения всегда устанавливается правильно, если переадресация установлена. Если вам нужно диагностировать проблемы с SSH-соединением, передайте опцию -vvv ssh чтобы получить подробную информацию о том, что происходит.

Если вы подключаетесь с помощью других средств, вы можете или не сможете достичь перенаправления X11. Если ваш клиент работает под управлением Windows, PuTTY поддерживает пересылку X11; вам придется запустить X-сервер на компьютере с Windows, например Xming.

Жиль из Аскубунту

Ответ 4

Если вы пытаетесь использовать xclip на удаленном хосте, просто добавьте -X в свою команду ssh

ssh [email protected] -X

Более подробную информацию можно найти здесь: https://askubuntu.com/a/305681

Ответ 5

Прочитайте документацию, которую вы связали. Это совершенно глупо! xclip - это просто буфер обмена. Вы найдете другие способы копирования вставки ключа... (я уверен)


Если вы не работаете изнутри графического сеанса X, вам необходимо передать команду $DISPLAY var var в команду. Выполните его следующим образом:

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub

Конечно, :0 зависит от используемого вами дисплея. Если у вас типичный настольный компьютер, вероятно, что он :0

Ответ 6

Попробуйте это, и это будет работать как шарм. У меня была такая же ошибка, но этот подход сделал для меня трюк:

ssh [email protected] "cat file"|xclip -i

Ответ 7

Для меня также работает следующее:

ssh <user>@<host>  "cat <filepath>"|pbcopy 

Ответ 8

добавьте пользователем root этой команды: ssh user_to_acces @hostName -X

user_to_acces = user hostName = имя хоста машины