Мастер связи
Это проще всего, если вы планируете заранее.
Откройте мастер-соединение в первый раз. Для последующих подключений маршрутизируйте подчиненные соединения через существующее главное соединение. В ваших ~/.ssh/config
, настроить общий доступ к подключению происходит автоматически:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Если вы запустите сеанс ssh с тем же пользователем (пользователь, порт, компьютер), что и с существующим соединением, второй сеанс будет туннелироваться поверх первого. Установка второго соединения не требует новой аутентификации и выполняется очень быстро.
Таким образом, пока у вас есть активное соединение, вы можете быстро:
экспедиция
На существующем соединении вы можете установить обратный туннель SSH. В командной строке ssh создайте удаленную переадресацию, передав, -R 22042:localhost:22
где 22042 - это случайно выбранный номер, который отличается от любого другого номера порта на удаленном компьютере. Затем ssh -p 22042 localhost
на удаленной машине соединяет вас обратно с исходной машиной; Вы можете использовать scp -P 22042 foo localhost:
для копирования файлов.
Вы можете автоматизировать это дальше с RemoteForward 22042 localhost:22
. Проблема в том, что если вы подключаетесь к одному и тому же компьютеру с несколькими экземплярами ssh или если кто-то другой использует порт, вы не получите переадресацию.
Если вы не включили удаленную пересылку с самого начала, вы можете сделать это в существующем сеансе ssh. Тип Enter ~C
Enter -R 22042:localhost:22
Enter. См. «Escape-символы» в руководстве для получения дополнительной информации.
Есть также некоторая интересная информация в этой теме неисправности сервера .
Копировать вставить
Если файл небольшой, вы можете напечатать его и скопировать и вставить из вывода терминала. Если файл содержит непечатаемые символы, используйте кодировку, например base64 .
remote.example.net $ base64 <myfile
(скопируйте вывод)
local.example.net $ base64 -d> myfile
(вставить содержимое буфера обмена)
Ctrl +D
Удобнее, если у вас активна переадресация X, скопируйте файл на удаленный компьютер и вставьте его локально. Вы можете передавать данные в и из xclip
или xsel
. Если вы хотите сохранить имя файла и метаданные, скопируйте и вставьте архив.
remote.example.net$ tar -czf - myfile | xsel
local.example.net$ xsel | tar -xzf -
scp file.foo user@myclient.com:file.foo
: P