Как я могу использовать команду scp для копирования файлов между двумя удаленными серверами с моего локального ПК?
удаленный сервер 1: IP = 67.12.21.133 & amp; port = 6774
удаленный сервер 2: IP = 67.129.242.40 & amp; port = 6774
scp -rp -P 6774 denny@67.12.21.133: /home/denny/testapp1.txt denny@67.129.242.40:
Он выдает сообщение об ошибке после ввода пароля из 67.12.21.133,
ssh: подключиться к хосту 67.129.242.40 порт 22: соединение отклонено
потерянное соединение
Я не нашел легкого решения, но вы можете попытаться использовать sshfs следующим образом:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
Другим способом может быть использование ssh (фактически не успешно протестировано):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
В настоящее время я не нашел правильный способ ввода двух паролей. Он задает несколько раз для двух паролей, но никого не принимает. Возможно, если вы обменяете ключи ssh между хостами, он работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
Вы можете использовать ~/.ssh/config
для указания портов, которые будут использоваться для хостов (и для установки многих других приятных вещей, проверьте справочную страницу man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
вам нужно использовать опцию -3
для scp, которая копирует файлы через локальную машину. В противном случае scp выдает команду scp через ssh на первом хосте, поэтому он фактически запускает
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
, а вместо этого используется ~ / .ssh / config первого удаленного хоста (67.12.21.133) вашего местного.
Если вы правильно настроили ~/.ssh/config
, это должно работать:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без опции -3
, которая, вероятно, ускорит передачу.
Или вы можете использовать трюк, который использует scp и использует такую командную строку:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Обратите внимание на другой случай параметра порта для ssh и scp: ssh -p 6774
vs. scp -P 6774
)
PS: Я получил эту информацию из OpenSSH bugzilla, где Я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
В соответствии с этой страницей в блоге Академии Linux вам просто нужно использовать опцию -P 6774
прямо перед вторым удаленным путем:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
использование флага -P
применяется только к следующему местоположению в командной строке, а не ко всей команде. Любое место, которое не имеет -P
между ним и предыдущим путем (или имя команды [scp
]) по умолчанию соответствует стандартным портам (22).
Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующую команду.
scp -pr root@192.168.1.2:/path/to/files /destination/path
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.
Я не нашел легкого решения, но вы можете попытаться использовать sshfs следующим образом:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
Другим способом может быть использование ssh (фактически не успешно протестировано):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
В настоящее время я не нашел правильный способ ввода двух паролей. Он задает несколько раз для двух паролей, но никого не принимает. Возможно, если вы обменяете ключи ssh между хостами, он работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующую команду.
scp -pr root@192.168.1.2:/path/to/files /destination/path
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.
Вы можете использовать ~/.ssh/config
для указания портов, которые будут использоваться для хостов (и для установки многих других приятных вещей, проверьте справочную страницу man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
вам нужно использовать опцию -3
для scp, которая копирует файлы через локальную машину. В противном случае scp выдает команду scp через ssh на первом хосте, поэтому он фактически запускает
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
, а вместо этого используется ~ / .ssh / config первого удаленного хоста (67.12.21.133) вашего местного.
Если вы правильно настроили ~/.ssh/config
, это должно работать:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без опции -3
, которая, вероятно, ускорит передачу.
Или вы можете использовать трюк, который использует scp и использует такую командную строку:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Обратите внимание на другой случай параметра порта для ssh и scp: ssh -p 6774
vs. scp -P 6774
)
PS: Я получил эту информацию из OpenSSH bugzilla, где Я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
В соответствии с этой страницей в блоге Академии Linux вам просто нужно использовать опцию -P 6774
прямо перед вторым удаленным путем:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
использование флага -P
применяется только к следующему местоположению в командной строке, а не ко всей команде. Любое место, которое не имеет -P
между ним и предыдущим путем (или имя команды [scp
]) по умолчанию соответствует стандартным портам (22).
Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующую команду.
scp -pr root@192.168.1.2:/path/to/files /destination/path
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.
Я не нашел легкого решения, но вы можете попытаться использовать sshfs следующим образом:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
Другим способом может быть использование ssh (фактически не успешно протестировано):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
В настоящее время я не нашел правильный способ ввода двух паролей. Он задает несколько раз для двух паролей, но никого не принимает. Возможно, если вы обменяете ключи ssh между хостами, он работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
Вы можете использовать ~/.ssh/config
для указания портов, которые будут использоваться для хостов (и для установки многих других приятных вещей, проверьте справочную страницу man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
вам нужно использовать опцию -3
для scp, которая копирует файлы через локальную машину. В противном случае scp выдает команду scp через ssh на первом хосте, поэтому он фактически запускает
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
, а вместо этого используется ~ / .ssh / config первого удаленного хоста (67.12.21.133) вашего местного.
Если вы правильно настроили ~/.ssh/config
, это должно работать:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без опции -3
, которая, вероятно, ускорит передачу.
Или вы можете использовать трюк, который использует scp и использует такую командную строку:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Обратите внимание на другой случай параметра порта для ssh и scp: ssh -p 6774
vs. scp -P 6774
)
PS: Я получил эту информацию из OpenSSH bugzilla, где Я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
В соответствии с этой страницей в блоге Академии Linux вам просто нужно использовать опцию -P 6774
прямо перед вторым удаленным путем:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
использование флага -P
применяется только к следующему местоположению в командной строке, а не ко всей команде. Любое место, которое не имеет -P
между ним и предыдущим путем (или имя команды [scp
]) по умолчанию соответствует стандартным портам (22).
Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующую команду.
scp -pr root@192.168.1.2:/path/to/files /destination/path
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.
Я не нашел легкого решения, но вы можете попытаться использовать sshfs следующим образом:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
Другим способом может быть использование ssh (фактически не успешно протестировано):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
В настоящее время я не нашел правильный способ ввода двух паролей. Он задает несколько раз для двух паролей, но никого не принимает. Возможно, если вы обменяете ключи ssh между хостами, он работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
Вы можете использовать ~/.ssh/config
для указания портов, которые будут использоваться для хостов (и для установки многих других приятных вещей, проверьте справочную страницу man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
вам нужно использовать опцию -3
для scp, которая копирует файлы через локальную машину. В противном случае scp выдает команду scp через ssh на первом хосте, поэтому он фактически запускает
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
, а вместо этого используется ~ / .ssh / config первого удаленного хоста (67.12.21.133) вашего местного.
Если вы правильно настроили ~/.ssh/config
, это должно работать:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без опции -3
, которая, вероятно, ускорит передачу.
Или вы можете использовать трюк, который использует scp и использует такую командную строку:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Обратите внимание на другой случай параметра порта для ssh и scp: ssh -p 6774
vs. scp -P 6774
)
PS: Я получил эту информацию из OpenSSH bugzilla, где Я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
В соответствии с этой страницей в блоге Академии Linux вам просто нужно использовать опцию -P 6774
прямо перед вторым удаленным путем:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
использование флага -P
применяется только к следующему местоположению в командной строке, а не ко всей команде. Любое место, которое не имеет -P
между ним и предыдущим путем (или имя команды [scp
]) по умолчанию соответствует стандартным портам (22).
Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующую команду.
scp -pr root@192.168.1.2:/path/to/files /destination/path
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.
Я не нашел легкого решения, но вы можете попытаться использовать sshfs следующим образом:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
Другим способом может быть использование ssh (фактически не успешно протестировано):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
В настоящее время я не нашел правильный способ ввода двух паролей. Он задает несколько раз для двух паролей, но никого не принимает. Возможно, если вы обменяете ключи ssh между хостами, он работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
В соответствии с этой страницей в блоге Академии Linux вам просто нужно использовать опцию -P 6774
прямо перед вторым удаленным путем:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
использование флага -P
применяется только к следующему местоположению в командной строке, а не ко всей команде. Любое место, которое не имеет -P
между ним и предыдущим путем (или имя команды [scp
]) по умолчанию соответствует стандартным портам (22).
Вы можете использовать ~/.ssh/config
для указания портов, которые будут использоваться для хостов (и для установки многих других приятных вещей, проверьте справочную страницу man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
вам нужно использовать опцию -3
для scp, которая копирует файлы через локальную машину. В противном случае scp выдает команду scp через ssh на первом хосте, поэтому он фактически запускает
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
, а вместо этого используется ~ / .ssh / config первого удаленного хоста (67.12.21.133) вашего местного.
Если вы правильно настроили ~/.ssh/config
, это должно работать:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без опции -3
, которая, вероятно, ускорит передачу.
Или вы можете использовать трюк, который использует scp и использует такую командную строку:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Обратите внимание на другой случай параметра порта для ssh и scp: ssh -p 6774
vs. scp -P 6774
)
PS: Я получил эту информацию из OpenSSH bugzilla, где Я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
Я не нашел легкого решения, но вы можете попытаться использовать sshfs следующим образом:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
Другим способом может быть использование ssh (фактически не успешно протестировано):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
В настоящее время я не нашел правильный способ ввода двух паролей. Он задает несколько раз для двух паролей, но никого не принимает. Возможно, если вы обменяете ключи ssh между хостами, он работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующую команду.
scp -pr root@192.168.1.2:/path/to/files /destination/path
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.
В соответствии с этой страницей в блоге Академии Linux вам просто нужно использовать опцию -P 6774
прямо перед вторым удаленным путем:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
использование флага -P
применяется только к следующему местоположению в командной строке, а не ко всей команде. Любое место, которое не имеет -P
между ним и предыдущим путем (или имя команды [scp
]) по умолчанию соответствует стандартным портам (22).
Вы можете использовать ~/.ssh/config
для указания портов, которые будут использоваться для хостов (и для установки многих других приятных вещей, проверьте справочную страницу man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
вам нужно использовать опцию -3
для scp, которая копирует файлы через локальную машину. В противном случае scp выдает команду scp через ssh на первом хосте, поэтому он фактически запускает
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
, а вместо этого используется ~ / .ssh / config первого удаленного хоста (67.12.21.133) вашего местного.
Если вы правильно настроили ~/.ssh/config
, это должно работать:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без опции -3
, которая, вероятно, ускорит передачу.
Или вы можете использовать трюк, который использует scp и использует такую командную строку:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Обратите внимание на другой случай параметра порта для ssh и scp: ssh -p 6774
vs. scp -P 6774
)
PS: Я получил эту информацию из OpenSSH bugzilla, где Я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
Вы можете использовать ~/.ssh/config
для указания портов, которые будут использоваться для хостов (и для установки многих других приятных вещей, проверьте справочную страницу man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
вам нужно использовать опцию -3
для scp, которая копирует файлы через локальную машину. В противном случае scp выдает команду scp через ssh на первом хосте, поэтому он фактически запускает
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
, а вместо этого используется ~ / .ssh / config первого удаленного хоста (67.12.21.133) вашего местного.
Если вы правильно настроили ~/.ssh/config
, это должно работать:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без опции -3
, которая, вероятно, ускорит передачу.
Или вы можете использовать трюк, который использует scp и использует такую командную строку:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Обратите внимание на другой случай параметра порта для ssh и scp: ssh -p 6774
vs. scp -P 6774
)
PS: Я получил эту информацию из OpenSSH bugzilla, где Я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
В соответствии с этой страницей в блоге Академии Linux вам просто нужно использовать опцию -P 6774
прямо перед вторым удаленным путем:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
использование флага -P
применяется только к следующему местоположению в командной строке, а не ко всей команде. Любое место, которое не имеет -P
между ним и предыдущим путем (или имя команды [scp
]) по умолчанию соответствует стандартным портам (22).
scp
, чем указанная здесь.
– Dan Hunsaker
26 September 2017 в 19:29
Я не нашел легкого решения, но вы можете попытаться использовать sshfs следующим образом:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
Другим способом может быть использование ssh (фактически не успешно протестировано):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
В настоящее время я не нашел правильный способ ввода двух паролей. Он задает несколько раз для двух паролей, но никого не принимает. Возможно, если вы обменяете ключи ssh между хостами, он работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующую команду.
scp -pr root@192.168.1.2:/path/to/files /destination/path
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.