Зворотний SCP через SSH-з'єднання


17

Мені досить часто потрібен файл з якогось сервера, коли я на своєму ноутбуці. Але якщо я не знаю, де цей файл, я повинен sshзайти на сервер, озирнутися навколо exit, а потім scp server:file .. Якщо я працюю зі своїм робочим столом та сервером, обидва з яких мають статичні IP-адреси, я можу просто SCP-файл заднім числом ( scp desktop:~ file), але я не можу цього зробити для свого ноутбука. Чи є приємний спосіб SCP-файлу назад через SSH-з'єднання? Так що комп'ютер, до якого я підключаюсь до SSH, надсилає файл клієнту назад?


Чому б не використовувати mDNS?
Ігнасіо Васкес-Абрамс

1
Я вважаю, що тут уже правильно відповіли: unix.stackexchange.com/a/2869
shellster

Відповіді:


20

Це було б набагато простіше з SFTP, що є розширенням до SSH, що підтримує більш складні файлові операції, ніж SCP. Практично всі сучасні дистрибутиви Unix та Linux підтримують його. Для його використання просто запустіть цю команду для підключення до сервера:

sftp server

Потім ви можете скористатися командами lsта та cdпереглядати та знаходити шуканий файл. Після того як ви його знайшли, скористайтеся getкомандою, щоб завантажити його. Наприклад, для завантаження file.txtу вашому поточному робочому каталозі на сервері до поточного робочого каталогу на локальній машині просто запустіть:

get file.txt

Щоб завантажити /home/pavpanchekha/textfiles/file.txtна сервер ~/textfiles/на локальну машину, замість цього запустіть:

get /home/pavpanchekha/textfiles/file.txt ~/textfiles/

І навпаки, ви також можете завантажувати файли таким чином. Щоб завантажити file.txtз поточного локального робочого каталогу в поточну робочу директорію сервера, введіть:

put file.txt

Ви також можете використовувати повні шляхи для кожного, як ви можете get:

put ~/textfiles/file.txt /home/pavpanchekha/textfiles/file.txt

Повний список доступних команд SFTP, просто запустіть helpна sftp>запрошення.


1
Це дуже круто, дякую. Чи є спосіб запустити його заднім ходом, якщо я вже в SSH-з'єднанні? В іншому випадку я опиняюсь, десь перебуваю, розуміючи, що я хочу перенести файл, вийшов із SSH-з'єднання, зробив з'єднання SFTP, вийшов з нього і повернувся до SSH.
павпанчеха

2
@pav: SSH_CLIENTзмінна середовища містить IP-адресу з'єднувального хоста серед іншої інформації. Ви можете використовувати це для створення псевдоніму оболонки, щоб легко SFTP повернутися до вихідного хоста. Просто додайте цей рядок ~/.bashrcна сервер: alias sftpback="sftp $(echo $SSH_CLIENT | awk '{print $1}')" Потім відключіть і знову підключіться до SSH, щоб зміни набрали чинності, або запустіть це так, ніби це була команда, щоб вона набрала чинності негайно. З цього sftpbackмоменту ви можете просто бігти на SFTP назад до клієнта, з яким ви підключаєтесь, незалежно від того, який це.
Патчі

Це найкраще !!! Дякую, що врятували мене від NANO (редагування файлу в Інтернеті), це робить процес таким простим.
Мохін

0

Менеджер файлів консолі Midnight Commander (mc) має систему VFS, яка дозволяє підключення SFTP / управління файлами до віддалених серверів. Він також працює в Cygwin на Windows. Інтерфейс за замовчуванням показує дві незалежні панелі; ми могли б відкрити віддалений каталог SFTP в одному з них і легко перенести файли на / з іншої панелі. Включає редактор / переглядач файлів (mcedit) з підсвічуванням синтаксису.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.