Назад | Перейти на главную страницу

SCP Невозможно скопировать с сервера с закрытым ключом

Я пытаюсь использовать 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