2013-08-29 3 views
9

Это должен быть очень простой вопрос, но я пытаюсь перенести файл с удаленного сервера на локальный компьютер во время входа в удаленный (через ssh).Как я могу ссылаться на свой локальный компьютер для scp'ing при регистрации на удаленном компьютере?

Все гиды говорят просто использовать

scp [email protected]:/path/to/file local/path/to/file 

Но, насколько я понимаю, это было бы то, что я хотел бы использовать с моей локальной машине. С удаленной машине, я предполагаю, что я хочу использовать что-то вроде

scp /path/to/file my_local_computer:/local/path/to/file 

, но (если это даже правильно), как я знаю, что положить в течение my_local_computer?

Спасибо!

+1

спасибо. Я некоторое время пытался «попытаться» и искал довольно много руководств и форумов. – Asbestos

ответ

7

Вы можете автоматически определить, откуда вы вошли, проверив переменные среды SSH_CONNECTION и/или SSH_CLIENT. Например, SSH_CONNECTION показывает адрес клиента, исходящий порт на клиенте, адрес сервера и входящий порт на сервере.См. Раздел ОКРУЖАЮЩАЯ СРЕДА в man ssh

Итак, если вы хотите скопировать файл с сервера на клиент, с которого вы вошли в систему, следующее (которое передает клиент ip, взяв первую часть SSH_CONNECTION), должно работа:

scp /path/to/file $(echo $SSH_CONNECTION | cut -f 1 -d ' '):/local/path/to/file 

Andreas

0

Может быть, вы можете создать решение вокруг этого:

who | grep $USER 

При запуске на удаленном компьютере, он должен дать подсказку, где вы подключили форму.

2

Вы на правильном пути! Страница людей для УПП должна сказать вам, как сделать то, что вы хотите: http://linux.die.net/man/1/scp

Если у вас возникли проблемы с пониманием страницы человека, то я буду пытаться учить вас:

  1. Если вы хотите нажать файл с локального компьютера к удаленной машине

    scp /path/to/local/file [email protected]:/path/to/where/you/want/to/put/file

  2. Если вы хотите, чтобы вытащить файл с удаленного компьютера на локальном компьютере

    scp [email protected]:/path/to/file/you/want/to/pull /path/on/local/machine/to/place/file

  3. Если вы вошли на удаленную машину и хотите, чтобы нажать на файл на локальном компьютере (если у вас есть возможность Scp на локальной машине, в первую очередь)

    scp /path/on/remote/machine/to/file [email protected]:/path/on/local/machine/to/put/file

Теперь, чтобы определить, что такое адрес локального хоста, вы можете проверить IP-адрес локального компьютера, или если на вашем локальном компьютере была предоставлена ​​запись DNS, вы можете использовать ее.

И.Е., scp ~/myfile [email protected]:/home/testuser/myfile OR scp ~/myfile [email protected]:/home/testuser/myfile

Для записи DNS, если вы находитесь на правильной сконфигурированной сети, вы не нуждались бы в полное домен. В противном случае вам нужно будет сделать что-то вроде [email protected]:/home/testuser/myfile

+0

У меня есть вопрос: как scp с машины с локальным IP. Я пропустил три раза, чтобы получить доступ к этой машине. Можно ли написать что-то вроде этого: 'scp [email protected]: [email protected]: [email protected]:/directory/to/the/file/mylocal/address'. обратите внимание, что для машин есть 2 пользователя – Abolfazl

Смежные вопросы