Основне з'єднання
Найпростіше, якщо ви плануєте заздалегідь.
Відкрийте головне з'єднання вперше. Для наступних з'єднань маршрутизуйте ведені з'єднання через існуюче головне з'єднання. У вашому ~/.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. Докладнішу інформацію див. У посібнику "Утечі символів".
У цій темі помилок сервера також є якась цікава інформація .
Копіювати Вставити
Якщо файл невеликий, ви можете його набрати та скопіювати та вставити з термінального виходу. Якщо файл містить символи, що не друкуються, використовуйте кодування, наприклад base64 .
remote.example.net $ base64 <мій файл
(скопіюйте вихід)
local.example.net $ base64 -d> мій файл
(вставте вміст буфера обміну)
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