Я пытаюсь использовать SCP для копирования файла с удаленного VPS, который использует закрытые ключи, на локальный компьютер.
Я получаю разные ошибки в зависимости от того, что пытаюсь, и я не уверен, какой должен быть правильный метод.
Вот что я пробовал:
scp -i ~/.ssh/private-key root@123.456.78.90:/var/www/html/index.html /var/www/html/
Это запрашивает пароль закрытого ключа, а затем выдает ошибку / var / www / html - это каталог.
scp -i ~/.ssh/private-key root@123.456.78.90:/var/www/html/index.html root@localhost:/var/www/html/
Это запрашивает пароль закрытого ключа, затем говорит Ошибка проверки ключа хоста. потерянное соединение.
scp -i ~/.ssh/private-key root@123.456.78.90:/var/www/html/index.html root@192.168.1.142:/var/www/html/
Это просто дает пустой экран, который, казалось бы, длится вечно. Я предполагаю, что это может быть метод, который действительно работает, но может просто копировать невероятно медленно?
Я попытался подключиться к серверу по ssh с тем же ключевым файлом, который работает нормально, поэтому я не уверен, в чем проблема.
Есть ли у кого-нибудь решение или знает, что я делаю не так? Спасибо
Для первой ошибки - попробуйте указать имя файла - как говорится в сообщении об ошибке, вместо / var / www / html укажите место назначения как /var/www/html/index.html.
Вторая ошибка звучит так, будто сервер, с которого вы пытаетесь скопировать, изменил свой открытый ключ с момента последнего доступа. Если это так (и вы уверены, что это не нарушение безопасности), используйте ssh-keygen -R host
удалить кешированный ключ; вам будет предложено принять новый ключ при следующей попытке подключения. Однако я думаю, что изменение первого способа должно сработать.
По сути, вам не хватает синтаксиса во всех аспектах. Вы должны сначала проверить синтаксис. Если я хочу скопировать файлы с VPS на локальный сервер, я бы сделал следующее на локальном компьютере.
cd /var/www/html/
scp -i ~/.ssh/private-key -r root@123.456.78.90:/var/www/html/* .
Это скопирует всю папку на мой локальный /var/www/html/
Или, если я передаю данные со своего VPS на локальный компьютер, мне нужно назначить общедоступный IP-адрес моей локальной машине или серверу. А с удаленного VPS я бы сделал что-то вроде ниже.
cd /var/www/html/
scp -i <key_path> -r * root@<my_local_machine_public_ip:~/var/www/html/
ИЛИ Скопируйте в папку / tmp на локальном компьютере с удаленного VPS, как показано ниже.
cd /var/www/html/
scp -i <key_path> -r * root@<my_local_machine_public_ip:~/tmp/
Добавьте следующие параметры в команду scp
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null