使用 apache maven wagon ssh 上传到私人 maven repo | 未知主机

Fab*_*ian 2 ssh android maven build.gradle android-gradle-plugin

我正在尝试将我的库上传到我们公司内的私有 Maven 存储库。我可以从我的 mac/linux 终端通过 ssh 访问服务器/repo,但我无法配置 wagen-ssh (2.2) 将其上传到 repo。

我按照此处的描述编写了 gradle 任务:https ://docs.gradle.org/current/userguide/maven_plugin.html

configurations {
    deployerJars
}
dependencies {
    ...
    deployerJars  'org.apache.maven.wagon:wagon-ssh:2.2+'
}

uploadArchives {
    repositories {
        mavenDeployer {
            configuration = configurations.deployerJars
            repository(url: "scp://{server}/var/www/maven") {
                authentication(userName: "myUsername", password: "myPassword")
            }
            pom.version = '0.1.0'
            pom.groupId = 'com.mycompany'
            pom.artifactId = 'mylib'

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但每次我尝试执行 gradle 任务时,我都会收到错误消息:无法部署工件:无法将工件 com.mycompany:mylib:aar:0.1.0 from/to remote (scp://{server}/var/www /maven): 主机未知且未被配置接受:{server}

我认为 wagon 正在使用自己的内部 ssh 客户端。我怎么能告诉这个客户接受我的主人,或者接受任何主人?!还是我错了,还有另一个问题?

Fab*_*ian 7

好的,我自己找到了解决方案:我服务器的 known_hosts 文件中的条目是

ecdsa-sha2-nistp256

但是wagon的ssh客户端只能理解rsa。所以

ssh -o HostKeyAlgorithms=ssh-rsa-cert-v01@openssh.com,ssh-rsa {yourhost}

魔法。