Вход копии к буферу обмена по SSH?

/usr/local/bin для программ, которые может запустить обычный пользователь.

  • /usr/local иерархия для использования системным администратором при установке программного обеспечения локально.
  • Должно быть безопасно от того, чтобы быть перезаписанным, когда системное программное обеспечение обновляется.
  • Это может использоваться для программ и данных, которые совместно используемы среди группы хостов, но не найденные в /usr.
  • Локально установленное программное обеспечение должно быть помещено в /usr/local вместо/usr, если это не устанавливается на замене или программном обеспечении обновления в /usr.

Этот источник помогает объяснить стандарт иерархии файловой системы на более глубоком уровне.

Вы могли бы найти эту статью об использовании и злоупотреблении /usr/local/bin интересный также.

34
15.07.2011, 02:41
10 ответов

При выполнении ssh с X передачами это прозрачно: удаленные команды (включая xclip) имейте доступ к своему X-серверу (включая его клавиатуру). Удостоверьтесь, что Вы имеете ForwardX11 yes в Вашем ~/.ssh/config и X11Forwarding yes в сервере sshd_config (в зависимости от Ваших дистрибутивов эти опции могут идти или прочь по умолчанию).

<myconffile.conf sed {...} | xclip -i

Существуют другие способы работать над удаленными файлами, которые могут быть более удобными, например, монтируя удаленные каталоги на Вашей локальной машине с SSHfs, или открыв удаленные файлы в Emacs с Бродягой. Если у Вас есть ssh и настроенный FUSE и установленный SSHfs, SSHfs так же легок как mkdir ~/net/myserver; sshfs myserver:/ ~/net/myserver. Если у Вас есть настроенный ssh и установленный Emacs, Бродяга так же легок как открытие /myserver:/path/to/file.

20
27.01.2020, 19:37

Вам не нужно ничто специальное; с тех пор xclip работы stdin, просто

ssh remotehost xclip < myconf.conf

Почему это должно было бы быть изменено с sed? ssh очевидно для данных, когда он не используется в качестве терминала и наиболее часто используемый в конвейерах такой как

tar cfz - somedir | ssh remotehost 'cd destdir; tar xfz -'`
7
27.01.2020, 19:37
  • 1
    Существует ли способ сделать это из существующей сессии SSH? Я действительно предпочел бы не должным быть открывать другое окно терминала, если у меня уже есть одно открытое для рассматриваемой машины. –  Naftuli Kay 15.07.2011, 02:56
  • 2
    И sed' просто там как пример, если я хотел бы выполнить какую-либо обработку на stdin прежде, чем скопировать его в буфер обмена, я хотел бы ту опцию. –  Naftuli Kay 15.07.2011, 02:57
  • 3
    Нет, нет никакого способа ввести данные в существующее ssh сессия (это не было бы очень безопасно, если Вы могли). Можно настроить ssh ControlMaster наполните для мультиплексирования дополнительных соединений по существующему, но это не действительно что-то для новичков, и Вы все еще делаете это тот же путь позже путем переключения на другой локальный терминал и выполнения команды выше (который не открывает новое окно терминала). –  geekosaur 15.07.2011, 03:03

У меня есть подобная проблема с LUbuntu's lxterminal (протестированные различные терминалы) вставка буфера обмена к ssh сессия. Если буфер обмена имеет больше, чем приблизительно 100 байтов тайм-ауты сессии и сбои.

Если я соединяюсь через ssh почти с каким-либо сервером CentOS 5.x и затем соединяюсь с целевым сервером, работами вставки буфера обмена без какой-либо проблемы для какого-либо разумного размера данных.

0
27.01.2020, 19:37

https://secure.wikimedia.org/wikipedia/en/wiki/Base64

Можно преобразовать данные буфера обмена с Base64 к тексту ASCII. Затем можно протолкнуть ту внутреннюю часть уже существующее соединение SSH.

-1
27.01.2020, 19:37
  • 1
    Почему преобразовывают во что-нибудь? Это уже - текст в этом случае и даже если бы это было двоичным то не было бы никакой причины, которую Вы не могли бы отправить ему через конвейер как это. –  Caleb 02.08.2011, 13:41
  • 2
    мог содержать двоичные данные, например: скомпилированное приложение –  LanceBaynes 02.08.2011, 17:34
  • 3
    Да, это могло, но почему это будет проблемой? Двоичные данные могут быть переданы через туннель ssh и канал. –  Caleb 02.08.2011, 17:39

Вот то, как Вы сделали бы это на OSX от Вашей локальной машины

ssh remotehost.com "<some/file.txt" | pbcopy
5
27.01.2020, 19:37

если на вашей локальной машине запущены windows(7+), то вы можете использовать их из командной строки:

ssh user@server cat /home/user/file | clip
3
27.01.2020, 19:37

~/.ssh/config:

Host REMOTEHOST
    ...
    ForwardX11 yes

/etc/ssh/sshd_config:

X11Forwarding yes

bash:

$ xclip -o | ssh REMOTEHOST 'DISPLAY=:0 xclip -i'
1
27.01.2020, 19:37

Копирование с безголового сервера в локальный буфер обмена из вашего обычного сеанса SSH:

  1. Установите ncatна свой локальный и удаленный компьютер. (На вашей удаленной машине вы также можете сделать с ncили простой telnet, но на локальной машине нам нужны опции для выполнения команд(-c/ -e), которые недоступны в ncв обычном дистрибутивы, такие как Debian и Ubuntu.)

    apt install nmap
    
  2. На локальном компьютере настройте сервер, прослушивающий локальный интерфейс, который будет копировать контент, поступающий через порт 10009, в буфер обмена X:

    ncat --keep-open --listen --sh-exec "xclip -selection clipboard" localhost 10009
    

    Или используйте эквивалентную сокращенную версию:

    ncat -klc "xclip -sel c" localhost 10009
    
  3. SSH на удаленную машину таким образом, чтобы был установлен обратный туннель от порта 10008 удаленной машины к порту 10009 на вашей локальной машине (, где ваш сервер прослушивает ). Вы можете использовать этот сеанс SSH для своей обычной работы.

    ssh -R 10008:localhost:10009 user@example.com
    
  4. Если вы хотите скопировать содержимое файла с удаленного компьютера в локальный буфер обмена, выполните в оболочке SSH:

    ncat --send-only localhost 10008 < file.txt
    

    И, конечно же, это лучше, если оно упаковано в виде ярлыка оболочки или сценария. Мы могли бы назвать его rclipдля «[копировать в] удаленный буфер обмена» по аналогии с хорошо известным -xclip.

Преимущества

  • Нет необходимости открывать другой сеанс SSH для удаленного компьютера.

  • Нет необходимости в xclipна удаленной машине, поэтому он работает, если вы не можете его установить или не можете использовать, потому что это безголовый сервер без X.

Безопасность

Мы делаем ncat -l localhost 10009для сервера, что означает, что он слушает только на сетевом интерфейсе с IP-адресом localhost. Этот интерфейс локальной петли позволяет подключаться только с вашей собственной машины (, включая, в данном случае, обратное туннелирование через SSH ). Таким образом, даже если вы не находитесь за брандмауэром, ваш порт 10009 никому не доступен в Интернете.

Источник

Адаптировано из gist dergachev/ssh -forward -clipboard.md для работы в Linux. Этот список также содержит инструкции о том, как сделать обратный туннель SSH туннелем по умолчанию.

0
27.01.2020, 19:37

Очень похоже на решение @d -raev и @william -casarin, но отличается, поэтому я делюсь тем, что помогло мне.

Команда

ssh user@host "cat <myconffile.conf" | xclip -sel clip

Пояснение

Это использование 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, чтобы узнать о поведении и параметрах.

2
27.01.2020, 19:37

Порт Far Manager Linux поддерживает синхронизацию буфера обмена между локальным и удаленным хостом. Вы просто открываете локальный far2l, выполняете «ssh somehost» внутри, запускаете удаленный far2l в этом сеансе ssh и получаете удаленный far2l, работающий с вашим локальным буфером обмена.

Он поддерживает Linux, *BSD и OS X; Я сделал специальную сборку шпатлевки , чтобы использовать эту функциональность также и в Windows.

0
08.08.2020, 02:51

Теги

Похожие вопросы