Як у SSH, як перейти до місцевої системи?


129

Я sshввійшов до каталогу мого веб-хостингу і tar-ed webapp для завантаження. Коли я намагаюся mvдо ~/mydirectory/backupsабо /home/mydirectory/backups, він визначає «будинок» , як мій корінь на хостингу , що я ssh'ed в.

Як я можу перейти в ssh на локальний привід, перебуваючи всередині системи веб-хостингу?


З якою ОС ви підключаєтесь?
Зоредаче

Відповіді:


181

Перш за все: ssh - це спосіб віддаленого входу на інший комп'ютер. Оболонка (командний рядок), яку ви отримаєте після ssh, є (майже) такою ж, як якщо б ви відкрили xterm у віддаленій машині. Якщо не існує такого способу переміщення файлів.

Однак той факт, що віддалений комп'ютер приймає ssh-з'єднання, дає вам кілька варіантів обміну файлами:

Використання scp Щоб скопіювати з локального комп'ютера на віддалений, введіть його на локальний комп'ютер:

scp /tmp/file user@example.com:/home/name/dir

(де / tmp / файл можна замінити будь-яким локальним файлом та / home / name / dir з будь-яким віддаленим каталогом)

Щоб скопіювати з віддаленого комп'ютера на локальний, введіть його на локальний комп'ютер:

scp user@example.com:/home/name/dir/file /tmp

Використовуйте sshfs Це трохи просунутіше, але набагато приємніше (коли інтернет-з'єднання обох комп'ютерів хороше. Якщо ні, дотримуйтесь scp)

Ви можете "прив'язати" каталог з віддаленого комп'ютера до (порожнього) каталогу локального комп'ютера. Скажіть, ви "пов'язуєте" / some / remote / dir з віддаленого комп'ютера на / home / youruser / remotecomp на вашому комп'ютері. Якщо на віддаленому комп'ютері є файл / деякий / віддалений / dir / файл, його можна побачити в / home / youruser / remotecomp / file. Ви можете скопіювати та передати mv як завжди, а також можете змінити віддалені файли та файли.

Зауважте, що коли з'єднання закінчується, / home / youruser / remotecomp знову стає порожнім dir, і ви зберігаєте на локальному комп'ютері лише ті файли, які ви скопіювали в інші каталоги

Щоб досягти цього:

1) встановити sshfs:

sudo apt-get install sshfs

2) створити порожній реж

mkdir /home/youruser/remotecomp

3) "пов'язати" два каталоги (потрібний термін монтується)

sshfs user@server.com:/some/remote/dir /home/youruser/remotecomp

4) Насолоджуйтесь

5) «від’єднайте» панночки

fusermount -u /home/youruser/remotecomp

Якщо локальний комп'ютер працює з Windows, ви можете знайти версії scpдля Windows. Див., Наприклад, wincp


Чи є спосіб скопіювати файл з віддаленої машини на локальну машину через "термінал на віддаленій машині"? У вашому випадку ви використовували термінал на локальній машині. Я говорю про ситуацію, коли локальна машина - це Windows, а віддалене - ubuntu, і я реєструюсь на віддаленій машині через ssh.
chandresh

Зазвичай ні. Наскільки я знаю, копіювання через "термінал на віддаленій машині" означає, що вам потрібен SSH-сервер у "локальній машині" (я цілеспрямовано пропустив це під час своєї відповіді, але мається на увазі "факт, що віддалений комп'ютер приймає ssh-з'єднання" сказати "факт, що на віддаленому комп’ютері працює ssh-сервер")
josinalvo

Однак ви можете знайти "scp-клієнтів" для Windows. Дивіться, наприклад, warscp.net/eng/download.php
josinalvo

Я люблю sshfsваріант
Фібо Ковальський

Якщо ви переносите великий файл, використовуйте rsync над ssh за допомогою rsync -P -e ssh /tmp/file user@example.com:/home/name/dir. Це тому, що якщо передача файлу не вдасться наполовину, scpпросто видалить файл. З іншого боку, якщо ви використовуєте rsyncцю -Pопцію, вона зберігатиме неповний файл на віддаленій машині, і коли ви перезапустите передачу, переконайтеся, що те, що вже є на віддаленій машині, відповідає файлу на вашій локальній машині та потім продовжуйте туди, де передачу припинено.
Борис

16

Ви можете використовувати scpабо rsync. У вашій місцевій системі:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

Але, оскільки ви згадали про резервне копіювання, я припускаю, що це буде поступово, і вам потрібно буде робити це час від часу. Отже, rsyncє кращим вибором для додаткового резервного копіювання. На локальній оболонці:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

перегляньте rsync(1)та scp(1)довідні сторінки для варіантів.


10

Ви можете використовувати захищену копію scp .

Від вас локальна оболонка:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

Цей приклад буде скопійовано через ssh з /path/of-the/tar.archive вашого веб-хосту в / home / mydirectory / backup /

Додаткові параметри:

-C : увімкнення стиснення


6

У мене була така ж проблема. Ось просте рішення: -

  1. Відкрити nautilus (провідник файлів)
  2. Клацніть + Other Locationsу нижній частині лівої панелі.
  3. Внизу - смужка Connect to server. Запишіть ssh адресу у поле введення, наприклад ssh://111.222.333.444/.
  4. Введіть своє ім’я користувача та пароль у діалогове вікно, яке відкриється.
  5. Після успішної автентифікації ви опинитесь у homeвіддаленому місці. Не соромтеся переміщувати файл туди-сюди.

Чудова відповідь! Простий і найближчий до відповіді на власне запитання, тобто як ви працюєте з віддаленого комп’ютера ssh. Відповідь, ви не можете, ви робите це з місцевого комп'ютера. Або це! Ви робите це графічно від свого провідника, щоб принаймні користувачеві здалося, що ви можете переміщати файли безпосередньо з віддаленого до локального.
Квоте

2

Інші відповіді рекомендують rsyncабо scpобидва з них вимагають знати розташування файлу, який ви хочете скопіювати, на віддаленій машині.

Якщо ви натомість хочете мати змогу тріскатися на віддаленій машині, як ви можете ssh, ви хочете запустити sftp. Вхід на сервер дуже схожий на ssh, але, як тільки ви входите, наберіть, helpщоб отримати список команд - це дозволяє вам переміщатись як на локальних, так і на віддалених машинах, а також легко переносити файли назад і назад.


1

Дивно, що зсередини це неможливо ssh. У звичайному терміналі можна було надсилати / приймати файли за допомогою команд zmodem.

Це допомогло піднятися на Google zssh: http://zssh.sourceforge.net/ . До оригіналу доведеться запустити його як обгортку ssh.

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