Ошибка копирования файлов по SSH. «Ошибка: невозможно проанализировать privateKey: неподдерживаемый формат ключа». - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь копировать файлы через SSH, я использую то же самое SSH Service Connection, и это просто отлично с другими задачами SSH, но копирование файлов, похоже, сталкивается с проблемами, Вот как это выглядит, когда я слежу за входами пользователей

 sshd[32240]: Accepted publickey for azurePPL1 from 13.69.175.211 port 1984 ssh2: ECDSA SHA256:0...

и это вроде бы нормально, но это не так?

вот ошибка, которую выдает Azure Pipelines

Error: Failed to connect to remote machine. Verify the SSH service connection details. Error: Cannot parse privateKey: Unsupported key format.

Теперь я бы заподозрил мою конфигурацию подключения службы SSH, но так как другие ssh работаютя не уверен, что это может быть

Любая помощь приветствуется

Ответы [ 2 ]

2 голосов
/ 27 сентября 2019

Использование того же SSH Service Connection, и это нормально для других задач SSH, но копирование файлов, похоже, создает проблемы

Поскольку все другие задачи SSH могут использовать тот же SSHСлужебное соединение просто Copy Files over SSH не удалось, это означает, что нет ошибки в вашей паре ключей SSH и соединении.На самом деле проблема, связанная с анализатором, который использовался в задаче Copy Files over SSH.

См. Функцию о скрипте задачи копирования файла с открытым исходным кодом в github: функция запускается в CopyFileOverSSH.ts и определение класса SshHelper: sshhelper.ts .Фактически, задача Copy Files over SSH использует Ssh2 npm пакет для подключения SSH и убедитесь, что от вас исходит сообщение об ошибке, с которым вы сталкиваетесь.Для самой задачи копирования файла она не выполняет синтаксический анализ ключей.

О синтаксическом анализе ключей см. Следующую исходную функцию: keyParser.js .Перейдите в строку 1447, и вы увидите, что это сообщение об ошибке, которое вы получили в задаче Devops от Azure.

Как я знаю, из задачи v0.148 используется библиотека ssh2 v0.8, но теперь ssh2библиотека была обновлена ​​до v0.8.5 .

Итак, чтобы решить эту проблему, пожалуйста, сгенерируйте пару ключей с помощью команды ssh-keygen -t rsa -m PEM, чтобы заставить ssh-keygen экспортировать в формате PEM.Таким образом ключ может работать в задании копирования файла.

1 голос
/ 27 сентября 2019

Теперь ясно, что Задача Azure использует старую версию ssh2 , где ключи Ed25519 не поддерживаются, что приводит к этой проблеме, так что пока мне просто нужно использовать RSA.

...