Ответ 1
DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub
у меня не работает (ubuntu 14.04
), но вы можете использовать:
cat ~/.ssh/id_rsa.pub
получить ваш открытый ключ
Следующее в Создание 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 вокруг но ничего не нашел об этом
DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub
у меня не работает (ubuntu 14.04
), но вы можете использовать:
cat ~/.ssh/id_rsa.pub
получить ваш открытый ключ
В зависимости от даты этого вопроса оригинальный плакат не использовал бы подсистему Windows для Linux. Но если вы, и получаете ту же ошибку, следующие альтернативные работы:
clip.exe < ~/.ssh/id_rsa.pub
Благодаря этой странице для указания на то, что Windows 'clip.exe(и вы должны ввести ".exe" ), можно запускать из оболочка bash.
Это был слишком хороший ответ, чтобы не публиковать его здесь. Это от Жиля, такого же пользователя из 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.
Жиль из Аскубунту
Если вы пытаетесь использовать xclip на удаленном хосте, просто добавьте -X в свою команду ssh
ssh [email protected] -X
Более подробную информацию можно найти здесь: https://askubuntu.com/a/305681
Прочитайте документацию, которую вы связали. Это совершенно глупо! xclip
- это просто буфер обмена. Вы найдете другие способы копирования вставки ключа... (я уверен)
Если вы не работаете изнутри графического сеанса X, вам необходимо передать команду $DISPLAY
var var в команду. Выполните его следующим образом:
DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub
Конечно, :0
зависит от используемого вами дисплея. Если у вас типичный настольный компьютер, вероятно, что он :0
Попробуйте это, и это будет работать как шарм. У меня была такая же ошибка, но этот подход сделал для меня трюк:
ssh [email protected] "cat file"|xclip -i
Для меня также работает следующее:
ssh <user>@<host> "cat <filepath>"|pbcopy
добавьте пользователем root этой команды: ssh user_to_acces @hostName -X
user_to_acces = user hostName = имя хоста машины