Копирование удаленного файла по указанному пути на локальном рабочем столе с помощью scp

10

Я пытался скопировать файл с удаленного сервера, используя SCP, но он выдал следующую ошибку.

bash-3.2$ scp username@server:main.php C:\main.php

ssh: не удалось разрешить имя хоста C: имя хоста, имя сервера не указано или не известно

Предполагается, что C: в качестве имени хоста, но это просто имя диска. Пожалуйста, позвольте мне указать явно, как некоторые экранирование, чтобы избавиться от этой проблемы.

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

bash-3.2$ scp username@server:main.php main.php
main.php                                                                   100%   29KB  28.9KB/s   00:01

Ценю любую помощь. Заранее спасибо,

PS: использование Windows XP SP2

Нага Киран
источник

Ответы:

14

Если вы используете Cygwin's scp, вы можете попробовать использовать пути Cygwin:

scp user@host:main.php /cygdrive/c/main.php

Можно также использовать pscpи psftpкоманды , включенные в PuTTY пакет - они являются носителями программы Win32 и не будет жаловаться на путях Windows.

В качестве альтернативы WinSCP является хорошим SCP / SFTP-клиентом (в первую очередь, с графическим интерфейсом пользователя, хотя также поставляется с инструментом командной строки).

user1686
источник
Это на самом деле / ​​Cygdrive / C.
Адам Розенфилд
Спасибо за рекомендованный графический интерфейс. Обратите внимание, что WinSCP позволяет вам изменять редактор, который вы используете с ним, и будет работать вместе с emacsclientw.
Джайлс Робертс
1
@ Grawity На самом деле вы были правы раньше. Это /cygdrive/cпо умолчанию, но многие пользователи Cygwin работают mount --change-cygdrive-prefix /так, чтобы /cвместо этого (и /dт. Д.)
Было
2

Используйте PSCP.exe

Проблема, с которой вы столкнулись, заключается в том, что вы обращаетесь к диску Windows XP из оболочки, чего вы не можете сделать. Вы вошли на компьютер удаленно, поэтому, если на вашем компьютере Windows XP не установлен сервер ssh, и в этом случае вы будете использовать информацию для входа и pw в качестве места назначения, вы не сможете этого сделать.

Используя pscp.exe (бесплатно), вы можете делать то, что хотите.


источник
0

@ Grawity это правильно. В будущем вы также можете запустить

pwd

чтобы узнать, в каком каталоге вы находитесь, чтобы вы могли определить правильный путь к нужному каталогу в соответствии с Cygwin.

Маркиз Ван
источник
0

У меня была похожая проблема, и я успешно использовал:

scp username @ server: main.php /c/main.php

что только упомянуто другими.

Urthona
источник
3
На самом деле, разве это не то, что обсуждает superuser.com/a/291841/53590 ? Кроме того, он был отредактирован из / c / в / cygdrive / c / после того, как было указано, что последний является правильной формой.
CVN
0

related: мне нужно было использовать локальные переменные в пути, и оказалось, что использование cygpathбыло очень полезным.

например

scp $MY_FILE ubuntu@192.128.23.23

стать:

scp `cygpath $MY_FILE ` ubuntu@192.128.23.23 

по иронии судьбы, просто: в echo $MY_FILEодиночку давал путь cygwin, но использовался в команде scp, его как-то не было, и выплевывал ту же ошибку, ssh: не удалось разрешить имя хоста C: указано имя хоста или имя сервера, или неизвестно

Мэтт С.
источник