scp с указанным номером порта
Я пытаюсь scp файл с удаленного сервера на локальную машину. Доступен только порт 80.
пробовал:
scp -p 80 [email protected]:/root/file.txt .
но получил эту ошибку: cp: 80: No such file or directory
Как указать номер порта в команде scp?
8 ответов:
В отличие от ssh, scp использует верхний регистр P для установки порта вместо нижнего регистра p:
scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp defaultстрочный переключатель p используется с scp для сохранения времени и режимов.
вот выдержка из справочной страницы scp со всеми деталями, касающимися двух переключателей, а также объяснение того, почему для scp был выбран верхний регистр P:
-P порт указывает порт для подключения к удаленному хосту. Обратите внимание, что этот параметр написано с большой буквы 'P', потому что-p уже есть зарезервировано для сохранения времени и режимов работы файла в rcp (1).
- p сохраняет время модификации, время доступа и режимы из исходного файла.
одна дополнительная подсказка. Поместите опцию '- P ' после команды scp, независимо от того, является ли машина, в которую вы входите ssh, второй (aka destination). Пример:
scp -P 2222 /absolute_path/source-folder/some-file [email protected]:/absolute_path/destination-folder
вы знаете, что круче, чем
-P? ничегоесли вы используете этот сервер более нескольких раз, установите / создайте
~/.ssh/configфайл с записью типа:Host www.myserver.com Port 80или
Host myserver myserver80 short any.name.u.want yes_anything well-within-reason HostName www.myserver.com Port 80 User usernameзатем вы можете использовать:
scp [email protected]:/root/file.txt .или
scp short:/root/file.txt .вы можете использовать что-нибудь на линии "Хост" с ssh, scp, rsync, git & more
есть много вариантов конфигурации, которые можно использовать в файлах конфигурации, смотрите:
man ssh_config
Я использую разные порты стандартные и копировать файлы между файлами, как это:
scp -P 1234 user@[ip address or host name]:/var/www/mywebsite/dumps/* /var/www/myNewPathOnCurrentLocalMachineЭто только для случайного использования, если он повторяется на основе расписания вы должны использовать rsync и cron работу, чтобы сделать это.
справка scp сообщает нам, что порт указан в верхнем регистре P.
~$ scp usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2надеюсь, что это помогает.
копирование файла на хост:
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переключатель:scp -i ~/keys/yourkey -P2222 file ubuntu@host:/directory/
Если вам нужно скопировать локальный файл на сервер (указать порт )
scp -P 3838 /the/source/file [email protected]:/destination/file
Comments