Как перенести файлы через ssh, пока ssh'd уже на сервер

13

Я передаю файлы с помощью этой команды

scp <localfile> user@host:<destination>

Приведенная выше команда работает только тогда, когда я не ssh'd на сервер.

Как передать локальные файлы на хост-компьютер, когда я уже в ssh'd?

Я ssh в использовании ssh user@hostname

вездесущий
источник
2
Какая ОС? Откройте другой терминал и используйте команду scp
Impulss
1
это CentOS. Вот что я делал до сих пор. Я просто надеялся на что-то более удобное.
Вездесущий

Ответы:

5

Хороший вопрос scpопять же, но наоборот. Я сделал это и вот оно:

chris@local ~$ ls hos*
hosts
chris@local ~$ ssh remote
Last login: Fri Mar  8 15:52:25 2013 from local
chris@remote ~$ scp chris@local:hos* .
chris@local's password: 
hosts                                              100% 1850     1.8KB/s   00:00    
chris@remote ~$ ls hos*
hosts
chris@remote ~$ 

отредактировано, чтобы добавить: как указано в комментариях, это требует, чтобы удаленный компьютер имел доступ к локальному компьютеру. И sshd or (openssh-server) должен быть установлен и запущен на локальной машине.

Крис К
источник
3
Предполагается, что локальный компьютер доступен с удаленного компьютера, и это не всегда так.
Лоран
Однако, если это правда, это будет хорошо работать.
daviewales
3

Это помогло бы узнать, что вы запускаете на хост-машине. Если вы используете Linux,

scp user@host:/path/myfile .

должно сработать.

мистифицировать
источник
user @ host - это удаленный компьютер из того, что я понял в Вопросе, поэтому эта команда не будет копировать файлы с локального компьютера на удаленный, а с удаленного на локальный, если не SSHed на хосте, и будет копировать с удаленного на себя, если SSHed.
Лоран
Я думаю, что в этом вопросе есть некоторая неопределенность. Мне user@hostкажется, это относится к любому компьютеру, который вы в данный момент не контролируете. Таким образом, когда OP не вошел в удаленный компьютер, то user@hostэто удаленный компьютер. Когда OP зарегистрирован на удаленном компьютере, то user@hostэто локальный компьютер. Если мои предположения верны, тогда этот ответ имеет смысл.
daviewales
Именно так я и истолковал вопрос, daviewales. Кроме того, вы правы, user @ host будет представлять любую рабочую станцию, с которой вы в данный момент НЕ работаете, по моему мнению. Я спорил о том, чтобы сделать это более ясным в моем ответе, но подумал, что это будет подразумеваться.
Джош
В любом случае, даже если user @ host представляет локальный компьютер, когда пользователь вошел в систему на удаленном компьютере (маловероятно, что OP сказал, что хочет передать локальные файлы на хост-компьютер), это будет работать, только если локальный компьютер доступен с удаленного компьютера. (обычно, если они находятся в одной локальной сети), а не в ситуации, когда удаленный компьютер находится в Интернете, а локальный компьютер не имеет фиксированного IP-адреса.
Лоран
0

Если у вас есть путь назад к вашей локальной машине (ваша локальная машина доступна с удаленной машины - обычно, когда обе машины находятся в одной локальной сети), использование scp с удаленной машины должно работать ( scp local:/path-to-file .).

Если ваш локальный компьютер не может быть доступен с удаленного компьютера (обычно это правда, если ваш удаленный компьютер - это VPS в Интернете и ваш локальный компьютер имеет динамический IP-адрес), лучше всего открыть новый терминал на локальном компьютере и скопировать файл.

Другим способом, более сложным и, конечно, не обязательным только для копирования файла, будет создание VPN между машинами (или сетями), чтобы обе машины были доступны с другой, и вы могли использовать scp с одной машины или с другой.

Laurent
источник
-1

при входе в удаленную систему (проще просто перейти в папку с файлом) sudo scp file_location / file_name user @ host: file_location

во время выхода из удаленной системы sudo scp authoried_user @ hostname: имя_файла / имя_файла new_location_on_local_machine

ПРИМЕЧАНИЕ: помните, что при выходе из удаленных систем, если это новый терминал, первым паролем будет пароль sudo, вторым паролем будет пароль авторизованного пользователя. Если вы ранее пользовались этим терминалом, то вам нужен только пароль авторизованного пользователя. смотреть на это, это делает это сложно.

obalolu
источник