4

У меня есть потребность сделать много в vim на удаленном сервере, который мне нужен для SSH. Я считаю, что лучше всего просматривать несколько документов в нескольких окнах на своем рабочем столе, поэтому для этого я открываю два или три сеанса SSH на удаленном сервере. Это становится немного утомительным, так как мне приходится повторно вводить un/pw несколько раз, и я должен убедиться, что каждое окно остается достаточно активным, чтобы предотвратить автоматический выход из системы.

Есть ли способ SSH за один раз, а затем добавить его с помощью разных окон терминала? (Я использую OSX и Ubuntu преимущественно).

7 ответов7

5

Screen и tmux предлагают вам ответы, которые вы ищете, но чтобы немного расширить свой вопрос, я хотел бы предложить вам изучить вопрос аутентификации на основе ключей SSH, чтобы вам не требовалось каждый раз вводить имя пользователя и пароль вы SSH на свой удаленный сервер :-)

3

Еще одна возможная альтернатива - использование sshfs.

sshfs позволяет вам удаленно монтировать любой каталог, доступный на удаленном компьютере через ssh, как том на вашем компьютере. Работает отлично. Преимущество в том, что вы можете работать со всеми файлами на удаленном компьютере, как если бы они были локальными. В целом, это будет проще в использовании, чем на экране - вы входите один раз, тогда все, что вы делаете с удаленными файлами, будет таким же, как если бы вы работали с локальными файлами.

Другой вариант - использовать возможность vim для редактирования удаленных файлов через ssh. Смотрите здесь: http://vim.wikia.com/wiki/Editing_remote_files_via_scp_in_vim

2

Не совсем то, что вы просили, но экранная утилита GNU позволяет вам иметь несколько виртуальных терминалов в одном окне. Он также защищает от разрыва соединения, потому что вы можете восстановить соединение с отключенным сеансом экрана.

2

tmux также является опцией (аналог GNU screen). Его кодовая база меньше и чище, она поддерживает параллельные панели без лишних хлопот, и, на мой взгляд, намного приятнее в использовании. Хотя экран гораздо более распространен, поэтому его стоит научиться использовать в любом случае.

Чтобы использовать tmux , просто установите его на компьютере, на котором вы хотите использовать SSH. Затем войдите в SSH, запустите tmux, и теперь вы можете запускать несколько терминалов или консольных приложений на одном экране или в разных «окнах» (аналогично рабочим областям Ubuntu) на одном терминале. Попробуйте man tmux для контроля.

0

И еще один вариант - встроенный плагин netrw для открытия удаленных файлов. Прекрасно работает с плагином Project.

Но чтобы иметь возможность работать с чем-либо через ssh, первым делом я регистрирую свой ключ ssh:ssh-copy-id user@host чтобы зарегистрировать ключ на хосте и проверить, ssh-agent и добавить ключ, используемый с ssh-add .

Я часто делаю такие вещи, как:

diffsplit scp://user@$REMOTE/path/to/dir/%

который выводит файл на хосте $REMOTE в ~user/path/to/dir с тем же относительным именем, что и текущий открытый файл. Я люблю vim, хотя я уверен, что это возможно и в emacs.

0

Вы можете запустить несколько сеансов SSH через одно соединение SSH, сделав первый вход в систему (который устанавливает соединение) мастером управления, и последующие вызовы SSH свяжутся с мастером управления и перенаправят их сеанс по уже аутентифицированному соединению мастера.

Сделайте это со следующим в вашем конфигурационном файле:

Host somehost
    # ~/tmp/sc must exist beforehand and should have mode 0700.
    ControlPath ~/tmp/sc/%h.%p
    ControlMaster auto

См. ssh_config(5) для получения дополнительной информации о том, как именно это работает.

0

Просто потому, что никто еще не упомянул об этом ... Если ваше соединение достаточно быстрое, вы можете посмотреть на переадресацию X через SSH - используйте аргумент -X для ssh(1).

Я использую это ежедневно, используя MobaXterm (или в прошлом Xming) на ПК с Windows, чтобы получить доступ к локальной машине разработки Linux - хотя в основном для простых окон xterm .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .