scp с указанным номером порта
Я пытаюсь scp файл с удаленного сервера на локальную машину. Доступен только порт 80.
пробовал:
scp -p 80 username@www.myserver.com:/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 со всеми деталями, касающимися двух коммутаторов, а также объяснение того, почему верхний регистр P был выбран для scp:
-P порт указывает порт для подключения на удаленном хосте. Обратите внимание, что этот параметр написано с большой буквы "P", потому что-p уже зарезервировано для сохранения времени и режимов работы файла в rcp (1).
- p сохраняет время изменения, время доступа и режимы из исходного файла.
одна дополнительная подсказка. Поместите опцию'- P ' после команды scp, независимо от того, является ли машина, в которую вы ssh-ing, второй (aka destination). Пример:
scp -P 2222 /absolute_path/source-folder/some-file user@example.com:/absolute_path/destination-folder
вы знаете, что круче, чем -P
? ничего!--8-->
если вы используете этот сервер более нескольких раз, настройте / создайте ~/.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 username@www.myserver.com:/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 job для этого.
справка 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 username@server.com:/destination/file