Я пытаюсь скопировать файл с удаленного сервера на мою локальную машину. Доступен только порт 80.
Я старался:
scp -p 80 username@www.myserver.com:/root/file.txt .
но получил эту ошибку: cp: 80: No such file or directory
Как мне указать номер порта в команде scp?
Ответы:
В отличие от ssh, scp использует ключ P в верхнем регистре для установки порта вместо p:
Переключатель строчных букв p используется вместе с scp для сохранения времени и режимов.
Вот выдержка из справочной страницы scp со всеми подробностями, касающимися этих двух ключей, а также объяснение того, почему прописная буква P была выбрана для scp:
Обновите и оставьте в стороне один из комментариев (с большим количеством голосов) :
Что касается комментария Абдулла об
scp
опционном порядке, то, что он предлагает:..., перемежает параметры и параметры.
getopt(1)
четко определяет, что параметры должны следовать за опциями, а не перемежаться с ними:Поскольку
-r
опция командной строки не принимает никаких дополнительных аргументов,some_directory
это «первый необязательный параметр, который не является аргументом опции». Следовательно, как четко указано вgetopt(1)
справочной странице, все последующие аргументы командной строки, которые следуют за ней (т. Е.-P 80 ...
), Считаются не опциями (и не опциями).Таким образом, по сути, так выглядит
getopt(1)
пример, представленный с окончанием параметров и началом параметров, разграниченных последовательным бингом текста серым цветом:scp -P80 -r
some_directory -P 80 ...
Это не имеет ничего общего с
scp
поведением и связано с тем, как стандартные приложения POSIX анализируют параметры командной строки, используяgetopt(3)
набор функций C.Для получения более подробной информации о порядке и обработке командной строки, пожалуйста, прочитайте
getopt(1)
справочную страницу, используя:источник
scp
требует правильной настройки порядка:scp -r some_directory -P 80 ...
не работает -----, ноscp -P 80 -r some_directory ...
работает.-P
порядок параметров. В основном, порт должен идти перед хостом. Это предотвращает неоднозначность и позволяет использовать два-P
параметра, если оба хоста являются удаленными.Еще один совет. Поместите опцию '-P' после команды scp, независимо от того, является ли машина, на которую вы устанавливаете ssh, второй (то есть, пункт назначения). Пример:
источник
Вы знаете, что круче чем
-P
? ничегоЕсли вы используете этот сервер несколько раз, настройте / создайте
~/.ssh/config
файл с записью, подобной следующей:или
Тогда вы можете использовать:
scp username@www.myserver.com:/root/file.txt .
или
scp short:/root/file.txt .
Вы можете использовать все что угодно в строке «Хост» с помощью ssh, scp, rsync, git & more
Есть много вариантов конфигурации, которые вы можете использовать в конфигурационных файлах, см .:
man ssh_config
источник
scp -3
от и до серверов с слушателями ssh на разных портах.scp -3 -P 123 server1:/file -P 456 server2:/file
или аналогичные альтернативы неЯ использую разные порты, а затем стандартные и копировать файлы между файлами, как это:
Это только для случайного использования, если оно повторяется по расписанию, вы должны использовать для этого задания rsync и cron.
источник
для использования другого порта в команде scp используйте прописную букву P, как это
я али
источник
Справка scp сообщает нам, что порт указан заглавной буквой P.
Надеюсь это поможет.
источник
Копирование файла на хост:
scp SourceFile remoteuser@remotehost:/directory/TargetFile
Копирование файла с хоста:
scp user@host:/directory/SourceFile TargetFile
Рекурсивное копирование каталога с хоста:
scp -r user@host:/directory/SourceFolder TargetFolder
ПРИМЕЧАНИЕ . Если хост использует порт, отличный от порта 22, вы можете указать его с помощью опции -P:
scp -P 2222 user@host:/directory/SourceFile TargetFile
источник
Этого можно достичь, указав порт через
-P
коммутатор:источник
если вам нужно скопировать локальный файл на сервер (укажите порт)
источник
Надеюсь, что это поможет кому-то в поисках идеального ответа
Копирование папки или файла с сервера с портом, определенным на другой сервер или локальный компьютер
источник
Есть много ответов, но вы должны быть простыми. Убедитесь, что вы знаете, какой порт SSH прослушивает, и определите его. Вот что я использовал, чтобы повторить вашу проблему.
scp -P 12222 file.7z user@193.168.XX: / home / user / Downloads Это хорошо сработало.
источник