vechnokrainii
@vechnokrainii
ну почти всегда(

Как скачать файл с сервера находясь на сервере?

Здравствуйте! Подскажите как скачать файл с сервера после того как я подключился к нему по ssh?
Я знаю что могу набрать в консли находясь в домашней директории
scp user@expamle:/home/file.txt ~/Downloads
А какую команду нужно ввести находясь именно в терминале на сервере! А не в домашней директории
Сколько не гуглил везде пишут про именно ввыедение команды с домашней консоли
Небольшое добавление! У сервера белый ip, у моего компа нет
  • Вопрос задан
  • 386 просмотров
Пригласить эксперта
Ответы на вопрос 8
mmmaaak
@mmmaaak
Вместо обычного подключения к серверу через ssh, и попытки скачать что-то из его консоли, можно воспользоваться такой приколюхой:
ssh username@old 'tar c .' | tar xvf - -C /home/username
Ответ написан
jamakasi666
@jamakasi666 Куратор тега Linux
Просто IT'шник.
Можно такое сделать. Если я все правильно понял из вопроса.
При подключении по SSH делаете через него port forwarding.
А ваш ПК.
Б сервер.
подключаетесь по ssh от А к Б, делаете проброс порта от Б(условно 222) к А(порт ssh). Это указывается при подключении.
После подключения уже находясь на машине Б сможете дать
scp foobar.txt usernameA@localhost:222:/some/remote/directory

Т.е. вы находясь на удаленном сервере через ssh тунель пробрасываете порт до ssh вашего ПК и сможете подключаться по ssh\scp к нему обратно.

Мудрено но так можно.
Ответ написан
shurshur
@shurshur
Задача сводится к тому, чтобы на сервере можно было бы открыть ssh-соединение до компьютера, находящегося за nat где-то в офисе. И это можно сделать! Для этого в ssh есть Port Forwarding.

Делаем так:

ssh -R 12345:127.0.0.1:22 user@example

При этом не только открывается сессия с example, но и на удалённом сервере на localhost (127.0.0.1) sshd начинает слушать порт 12345. Все коннекты на этот порт по ssh-соединению (то есть зашифрованно прокидываются на исходную машину на 127.0.0.1:22. Что и требовалось.

Например, можно на удалённой машине зайти на свою:

ssh -p 12345 me@localhost

Можно скопировать файл:

scp -P 12345 /dev/zero me@localhost

Можно даже sftp:

sftp -o Port=12345 me@localhost

Возможен проброс порта и в обратную сторону, с локальной машины на удалённую, с помощью ключа -L. Например, пусть есть сервер в офисе с внешним IP, с которого доступен внутренний адрес 192.168.1.2 с Windows и включённым RDP. Нам надо на него попасть, не заморачиваясь с поднятием VPN.

Делаем так:

ssh -L 31415:192.168.1.2:3389 user@example

Затем в RDP-клиенте вместо 192.168.1.2 вводим 127.0.0.1:31415

PS: Нужно отметить, что в настройках sshd PortForwarding может быть запрещён. Но чаще всего в конфигурации по умолчанию он включен.
Ответ написан
7workers
@7workers
когда вы зашли по SSH вы как бы сидите за экраном и клавиатурой сервера и при этом ничего не знаете о существовании домашнего компа. так что надо сделать scp с сервера на домашний, со всеми вытекающими, так сказать. короче говоря, этого нет "из коробки", это "танцы с бубном"
Ответ написан
shabelski89
@shabelski89
engineer
С текущими знаниями проще использовать WINSCP, который будет подключаться через sftp и вы будете иметь удобный интерфейс.
Примеры консольных команд тут
Ответ написан
@antonwx
FileZilla скачайте и через неё уже скачивайте что угодно
Ответ написан
@Zzzz9
Угадай, почему столько ответов и никто не может помочь?, по тому что нет полной картины. Укажи какие ОС, если сеть локальная, это одно, если глобальная другое, адреса белые серые, лучше схему.
Ответ написан
shambler81
@shambler81 Куратор тега Linux
самый простой способ для разовых передач просто на вашем mc подключиться к внешнему ssh
и скопировать ручками.
логин и пароль как ввести я думаю вы знаете.
5f916e6e87713949213591.png
Собственно подойдет любой из протоколов FTP SFTP SSH ( ну фтп должен присутствовать на той стороне)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы