Вот мой пример использования:
- Я часто подключаюсь к другим компьютерам по SSH для работы, и мне часто приходится копировать и вставлять документы / текст с сервера в локально работающие редакторы для написания примеров и обмена текстом.
- Часто, если текст достаточно мал, я просто копирую вывод из моей терминальной программы (сейчас gnome-терминал) и вставляю его.
- Однако, когда дело доходит до целых документов, мои возможности весьма ограничены. Я могу скопировать документ по частям или отправить
scp
его на локальный компьютер.
Есть ли способ использовать программу, например, xclip
которая позволит мне скопировать удаленно stdin
в буфер обмена локального X-сервера? Что-то с эффектом:
cat myconffile.conf | sed {...} | copy-over-ssh-to-local-clipboard
было бы здорово. Существует ли что-то, чтобы сделать это возможным?
Вам не нужно ничего особенного; так как
xclip
работаетstdin
, простоЗачем его нужно модифицировать с помощью
sed
?ssh
прозрачен для данных, когда не используется в качестве терминала, и обычно используется в конвейерах, таких какисточник
stdin
перед копированием в буфер обмена, я бы хотел эту опцию.ssh
сеанс (это было бы не очень безопасно, если бы вы могли). Вы можете настроитьssh
ControlMaster
материал для мультиплексирования дополнительных соединений поверх существующего, но на самом деле это не то, что нужно новичкам, и вы все равно делаете это потом, переключаясь на другой локальный терминал и выполняя указанную выше команду (которая не открывает новый окно терминала).Вот как вы могли бы сделать это на OSX с вашей локальной машины
источник
если на вашем локальном компьютере запущена Windows (7+), вы можете просто использовать это из CommandLine:
источник
~ / .Ssh / конфигурации:
/ И т.д. / SSH / sshd_config:
Баш:
источник
Очень похоже на решения @ d-raev и @ william-casarin, но отличается, поэтому я поделюсь тем, что сработало для меня.
Команда
объяснение
Он используется
ssh
для создания защищенного туннеля, войдите в системуuser
@host
илиip
, а затем выполните его,cat
чтобы распечатать содержимое<myconffile.conf
иstdout
затем передать его командеxclip -sel clip
на локальном компьютере, которая поместит содержимое<myconffile.conf
в буфер обмена на локальном компьютере.Пример использования в реальном мире
Я использую эту структуру команд для таких задач, как вставка ключей ssh в github (позволяя простой выбор ctrl-V или вставка после выполнения команды) в Bash в Ubuntu 16.04 и 18.04. Проверьте
man ssh
,man cat
иman xclip
для поведения и опционных деталей.источник
xclip
не будет работать, поскольку нет X.У меня есть похожая проблема с вставкой
lxterminal
буфера обмена LUbuntu (проверенные различные терминалы) вssh
сеанс. Если в буфере обмена содержится более 100 байтов, время ожидания сеанса завершается сбоем.Если я подключаюсь через ssh практически к любому серверу CentOS 5.x, а затем подключаюсь к целевому серверу, вставка буфера обмена работает без проблем для любого разумного размера данных.
источник
Копирование с автономного сервера в локальный буфер обмена из обычного сеанса SSH:
Установите
ncat
на свой локальный и удаленный компьютер. (На удаленной машине вы также можете сделать этоnc
или простоtelnet
, но на локальной машине нам нужны опции для выполнения команд (-c
/-e
), которые недоступныnc
в обычных дистрибутивах, таких как Debian и Ubuntu.)На локальном компьютере настройте сервер, прослушивающий локальный интерфейс, который будет копировать содержимое, поступающее через порт 10009, в ваш буфер обмена X:
Или используйте эквивалентную сокращенную версию:
SSH в удаленную машину таким образом, что обратный туннель устанавливается от порта 10008 удаленной машины к порту 10009 на вашей локальной машине (где ваш сервер прослушивает). Вы можете использовать эту сессию SSH для своей обычной работы.
Если вы хотите скопировать содержимое файла с удаленного компьютера в локальный буфер обмена, выполните в оболочке SSH:
И, конечно, это лучше, когда упакованы как ярлык оболочки или сценарий. Мы могли бы назвать его
rclip
для «[копировать в] удаленный буфер обмена» по аналогии с известнымxclip
.преимущества
Нет необходимости открывать другой сеанс SSH с удаленной машиной.
Нет необходимости
xclip
в удаленной машине, поэтому он работает, если вы не можете установить его или не можете его использовать, потому что это сервер без головы без X.Безопасность
Мы делаем
ncat -l localhost 10009
для сервера, что означает, что он слушает только на сетевом интерфейсе сlocalhost
IP-адресом. Этот локальный интерфейс петли разрешает соединения только с вашей собственной машины (включая, в данном случае, те, которые обратно транслированы через SSH). Таким образом, даже если вы не находитесь за брандмауэром, ваш порт 10009 никому не доступен в Интернете.Источник
Адаптировано из gist dergachev / ssh-forward-clipboard.md для работы в Linux. Эта суть также содержит инструкции о том, как сделать обратный туннель SSH по умолчанию.
источник
https://secure.wikimedia.org/wikipedia/en/wiki/Base64
Вы можете конвертировать данные буфера обмена с помощью Base64 в текст ASCII. Затем вы можете протолкнуть это через уже существующее соединение SSH.
источник