I wonder if the problem is that "ssh://g...@github.com" is needed for ssh remotes rather than just "ssh://github.com". The former works with Pkg.clone, but the latter does not. For example,
julia> Pkg.clone("ssh://github.com/HSU-ANT/ACME.jl.git") INFO: Cloning ACME from ssh://github.com/HSU-ANT/ACME.jl.git WARNING: The explicitly provided credentials were incompatible with the server's supported authentication methods ERROR: GitError(Code:EAUTH, Class:None, No errors) in macro expansion at ./libgit2/error.jl:98 [inlined] in clone(::String, ::SubString{String}, ::Base.LibGit2.CloneOptions) at ./libgit2/repository.jl:191 in #clone#107(::String, ::Bool, ::Ptr{Void}, ::Nullable{Base.LibGit2.AbstractPayload}, ::Function, ::String, ::SubString{String}) at ./libgit2/libgit2.jl:308 in clone(::String, ::SubString{String}) at ./pkg/entry.jl:195 in clone(::String) at ./pkg/entry.jl:221 in (::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#clone,Tuple{String}})() at ./pkg/dir.jl:31 in cd(::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#clone,Tuple{String}}, ::String) at ./file.jl:59 in #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{Any,N}) at ./pkg/dir.jl:31 in clone(::String) at ./pkg/pkg.jl:151 produces the same warning as Pkg.add("ACME"), but julia> Pkg.clone("ssh://g...@github.com/HSU-ANT/ACME.jl.git") INFO: Cloning ACME from ssh://g...@github.com/HSU-ANT/ACME.jl.git INFO: Computing changes... INFO: Installing Compat v0.8.6 INFO: Installing ProgressMeter v0.3.2 INFO: Package database updated succeeds. On Tuesday, August 2, 2016 at 6:32:13 PM UTC-6, Tony Kelman wrote: > > This sounds like the issue people have been reporting at > https://github.com/JuliaLang/PkgDev.jl/issues/48, though it's more likely > a problem with base Julia. > > On Tuesday, August 2, 2016 at 9:21:43 AM UTC-7, Daniel O'Malley wrote: >> >> OK, I tried again with the latest nightlies. Now Pkg.init("ssh:// >> g...@github.com/JuliaLang/METADATA.jl.git") succeeds. However, I'm still >> not able to add packages. Pkg.setprotocol!("ssh") does seem to work with >> Pkg.add though: >> >> julia> Pkg.setprotocol!("ssh"); Pkg.add("ACME") >> INFO: Cloning cache of ACME from ssh://github.com/HSU-ANT/ACME.jl.git >> WARNING: The explicitly provided credentials were incompatible with the >> server's supported authentication methods >> ERROR: Cannot clone ACME from ssh://github.com/HSU-ANT/ACME.jl.git. No >> errors >> in prefetch(::String, ::String, ::Array{String,1}) at ./pkg/cache.jl:56 >> in resolve(::Dict{String,Base.Pkg.Types.VersionSet}, >> ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, >> ::Dict{String,Tuple{VersionNumber,Bool}}, >> ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, >> ::Set{String}) at ./pkg/entry.jl:512 >> in resolve(::Dict{String,Base.Pkg.Types.VersionSet}, >> ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, >> ::Dict{String,Tuple{VersionNumber,Bool}}, >> ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:476 >> in edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, >> ::Vararg{Base.Pkg.Types.VersionSet,N}) at ./pkg/entry.jl:30 >> in (::Base.Pkg.Entry.##2#5{String,Base.Pkg.Types.VersionSet})() at >> ./task.jl:309 >> in sync_end() at ./task.jl:275 >> in macro expansion at ./task.jl:284 [inlined] >> in add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51 >> in >> (::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at >> ./pkg/dir.jl:31 >> in >> cd(::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, >> ::String) at ./file.jl:59 >> in #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, >> ::Vararg{Any,N}) at ./pkg/dir.jl:31 >> in add(::String) at ./pkg/pkg.jl:100 >> >> On Monday, August 1, 2016 at 11:24:51 AM UTC-6, Tony Kelman wrote: >>> >>> I think Pkg.add should obey setprotocol!, it's likely a bug that >>> Pkg.init doesn't. The extra colon after .com probably is malformed so isn't >>> the first error correct? The second issue might be fixed by some >>> authentication changes that Keno just merged a few minutes ago, there >>> should be binaries that include that fix built in a few hours. >>> >>> >>> On Monday, August 1, 2016 at 8:31:44 AM UTC-7, Daniel O'Malley wrote: >>>> >>>> I tried the Pkg.init("ssh://...") a couple different ways, but neither >>>> worked. >>>> >>>> Pkg.init("ssh://g...@github.com:/JuliaLang/METADATA.jl.git") >>>> >>>> gave GitError(Code:EINVALIDSPEC, Class:Net, Malformed URL >>>> 'ssh://g...@github.com:/JuliaLang/METADATA.jl.git'). >>>> >>>> Pkg.init("ssh://g...@github.com/JuliaLang/METADATA.jl.git") >>>> >>>> asked me about my ssh keys then resulted in an authentication >>>> failure. If I were to get Pkg.init() working in this way, Pkg.add and >>>> other >>>> Pkg functions would still have problems though, right? >>>> >>>> On Monday, August 1, 2016 at 9:09:22 AM UTC-6, Tony Kelman wrote: >>>>> >>>>> That could be considered a bug, Pkg.init should probably respect the >>>>> Pkg.setprotocol! setting, at least when using the DEFAULT_META value. You >>>>> should also be able to do Pkg.init("ssh://g...@github.com:/ >>>>> JuliaLang/METADATA.jl.git") as a workaround to avoid having to go >>>>> through command-line git. >>>>> >>>>> >>>>> On Monday, August 1, 2016 at 7:01:51 AM UTC-7, Daniel O'Malley wrote: >>>>>> >>>>>> Oh, sorry for the mixup. Doing a >>>>>> >>>>>> git clone ssh://g...@github.com:/JuliaLang/METADATA.jl.git >>>>>> >>>>>> from a shell succeeds. I haven't had success trying to change the >>>>>> protocol with Pkg.setprotocol! though. Whether I do >>>>>> Pkg.setprotocol!("ssh"), Pkg.setprotocol!("git"), or >>>>>> Pkg.setprotocol!("notaprotocol"), Pkg.init() seems to always try to >>>>>> clone >>>>>> via https. >>>>>> >>>>>> On Sunday, July 31, 2016 at 10:31:38 PM UTC-6, Tony Kelman wrote: >>>>>>> >>>>>>> No, I meant ssh:// or git:// url's for packages. >>>>>>> >>>>>>> >>>>>>> On Sunday, July 31, 2016 at 7:02:15 PM UTC-7, Daniel O'Malley wrote: >>>>>>>> >>>>>>>> Tony, thanks for the quick response and all the work you put into >>>>>>>> julia. It would be great to have the package system working for >>>>>>>> Mac/Linux >>>>>>>> from behind a proxy without needing to rebuild anything. If you need >>>>>>>> someone to help test from behind a proxy, please let me know. I'd be >>>>>>>> happy >>>>>>>> to do it. >>>>>>>> >>>>>>>> When you say "ssh remotes", do you mean something like >>>>>>>> addprocs(["machine1", "machine2"])? That does work for me, but I >>>>>>>> haven't >>>>>>>> tried addprocs'ing to a machine outside our network. >>>>>>>> >>>>>>>> On Sunday, July 31, 2016 at 6:12:12 PM UTC-6, Tony Kelman wrote: >>>>>>>>> >>>>>>>>> I believe you need to build libgit2 against libcurl in order for >>>>>>>>> proxies to work on linux and mac. We do not currently have it set up >>>>>>>>> in our >>>>>>>>> build system to do that in a self contained distributable way for >>>>>>>>> binaries, >>>>>>>>> but it might not be too hard to write the necessary makefile to make >>>>>>>>> it >>>>>>>>> work. >>>>>>>>> >>>>>>>>> We were prioritizing getting ssh remotes to work again for the >>>>>>>>> first rc. Do ssh remotes work over proxies by any chance? I don't >>>>>>>>> currently >>>>>>>>> have immediate access to an environment behind a proxy to test this, >>>>>>>>> but we >>>>>>>>> had looked into setting one up that we could revisit. >>>>>>>>> >>>>>>>>