'authenticationrequired' error on accessing debian repository - artifactory

I am trying to create a remote repository with Artifactory to a Debian mirror (http://ftp.uni-stuttgart.de/debian/) repository. It doesn't matter which one I try, I always get the same error message:
Connection failed: Error 407: authenticationrequired
A Artifactory-wide proxy is configured and already working for NuGet, Maven and NPM package repositories.
Accessing the above mentioned repository via browser does not require any authentication.
What could be the reason for that?

Problem solved: Only connections using HTTPS are allowed. Perhaps as for accessing the Artifactory server itself HTTPS is used already, no degredation of communication channel is allowed.

Related

Artifactory to Artifactory remote repos

i have 2 Artifactory server and have configured ubuntu repos.
One off the artifactorys goes to internet to ubuntu and the other
artifactory connects to the artifactory with internet access.
I have the following problem. From my local artifactory i get always the error 404.
I cant fetch the metafile (Packages) from the ubuntu repo.
But if i reconfigure my remote repo and set --> store artifacts locally all seems fine.
I want store the artifacts locally. My local artifactory should ask the artifactory with internet access and should get all files from the remote artifactory.
Have anyone a idea how to solve my problem?
best regards
I assume you are trying to set up a smart remote repository with Artifactory. Refer to this wiki and set up the smart remote repository, basically, you should be adding the URL in your local Artifactory's remote repository as http://ARTIFACTORY_URL/ubuntu-remote/ and make sure the "store artifacts locally"is checked so that this remote repository can able to index the artifacts.

VSTS dotnet restore corporate (or self-signed) certificate issue

I am trying the dotnet restore command on the build step process. My nuget store is in Artifactory. Despite installing the corporate certificate, i am getting a SSL issue. My VSTS agent is running in a Ubuntu container on kubernetes
Retrying 'FindPackagesByIdAsyncCore' for source 'https://<artifactory url>/nuget/FindPackagesById()?id='Client.HostingStartup'&semVerLevel=2.0.0'.
The SSL connection could not be established, see inner exception.
The remote certificate is invalid according to the validation procedure.
System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
Do we need to do any addition steps for the VSTS agent to pick up self-signed certificates?
If it is not working by installing the corporate certificate in the ubuntu container which hosts your VSTS agent. You can try below workarounds:
1, Create a Nuget service connection to authenticate Artifactory nuget server.
You can create the service connection by adding a new Credentials for feeds ... in the dotnet restore task. See below: Click + New
Then enter your credentials for Artifactory server. See below screeshot.
Another possible workaround is creating a Artifactory Service Connection and use Artifactory Nuget task to restore your packages. See Artifactory Azure DevOps Extension for more information.
Install JFrog Artifactory extension to your azure devops organziation. Then add Artifactory Nuget Task in your pipeline to restore your package.
Click + New from Artifactory Nuget task to add an Artifactory service connection.

I am trying to connect a local artifactory running on a laptop in docker to a remote artifactory on AWS behind an ELB

I have set up Artifactory OSS Version 6.9.1 on an AWS instance behind an ELB and have been successfully deploying builds to it from GitLab CI/CD. I am now trying to set up a local Artifactory OSS Version 6.10.0 on my laptop so that I can develop builds locally before sharing with the team.
My local artifactory connects perfectly to JCentre and I can browse that repository.
My gradle build will happily connect to the AWS hosted artifactory at http://{URL}/artifactory and resolve my dependencies.
When I connect a remote repository with http://"{URL}/artifactory I get a 500 Internal Error message on Test. If I take off the /artifactory it says it has connected successfully but when I try to browse the remote repo it is empty.
I read Connect one Artifactory to another Artifactory and followed the instructions to edit the json configuration and make the remote repository a smart repository here https://www.jfrog.com/confluence/display/RTF/Smart+Remote+Repositories.
It now has the smart repository image but still cannot be browsed.
Gradle still cannot resolve dependencies with the local artifactory using the remote-repo name.
As stated in the Smart Remote Repository documentation, you should configure the remote repository URL with the following structure:
http://ARTIFACTORY_URL/api/package-type/repository-key
So if you have a Gradle repository named "gradle-test", the URL should be:
http://ARTIFACTORY_URL/api/gradle/gradle-test
Hope this helps.
In the end it turned out to be ridiculously simple. When setting up the remote repository the key needs to be in the url as well as the key field.
So for a repo with a repository key 'fractal' the connection URL is counter-intuitively http:///artifactory/fractal

Proxy https://flywaydb.org/repo repository using Nexus OSS?

I'm trying to proxy https://flywaydb.org/repo using Nexus Repository OSS v2.13.0 because we rely on flyway-sbt sbt plugin.
I can download the plugin fine if I add
resolvers += "Flyway" at "https://flywaydb.org/repo"
to plugins.sbt
But we want to proxy the artefacts using a local Nexus repository because we don't want our builds to depend on a server that is outside our control.
However when I add the server to Nexus (using Maven2 as provider and format) Nexus is unable to proxy artefacts and I get following error in logs:
[proxy-3-thread-5] admin org.sonatype.nexus.proxy.maven.maven2.M2Repository - Remote peer of proxy repository "flywaydb.org" [id=flywaydb.org] threw a org.sonatype.nexus.proxy.ItemNotFoundException exception. Auto-blocking this repository to prevent further connection-leaks and known-to-fail outbound connections until administrator fixes the problems, or Nexus detects remote repository as healthy. - Cause(s): Remote peer of repository M2Repository(id=flywaydb.org) detected as unavailable.
I would be happy to hear if somebody was able to get this working. We successfully proxy several other external repositories.
The problem was that we ran Nexus using an old Java 6 version. Java threw an exception which seems to be related to SSL communication. Running Nexus using Java 8 solved the problem for us.

MSDeploy.exe can connect as Administrator, but not any other Windows account

I'm integrating MSDeploy into my build process, and having problems authenticating. The following command works fine:
msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=Administrator,password=secret -dest:package=c:\DeployTest\KPC.zip
However, this does NOT work:
msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=kpcpublish,password=secret -dest:package=c:\DeployTest\KPC.zip
And yields the error:
Error Code: ERROR_USER_NOT_ADMIN
More Information: Connected to '192.168.0.11' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administ
rator on '192.168.0.11'. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN.
Error: The remote server returned an error: (401) Unauthorized.
Error count: 1.
I've followed the instructions in the link above, and any other docs I could find, which pretty much all say the same thing:
I created an account called kpcpublish
I added this account to a group called MSDepSvcUsers - Heck, I even added the account to Administrators
I right clicked on the site and selected Deploy->Configure Web Deploy Publishing and added kpcpublish to the list. It says the following:
.
Publish enabled for 'SERVER\kpcpublish' Granted 'SERVER\kpcpublish'
full control on 'C:\Website' Successfully created settings file
'C:\Users\Administrator\Desktop\SERVER_kpcpublish_KitchenPC.PublishSettings'
There must be some step I'm missing, but I just can't figure out what could be.
UPDATE:
Using the full HTTP path for the computerName property, I get the error:
Error Code: ERROR_DESTINATION_NOT_REACHABLE More Information: Could
not connect to the remote computer ("192.168.0.3"). On the remote
computer, make sure that Web Deploy is installed and that the required
process ("Web Management Service") is started. Learn more at:
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DES
TINATION_NOT_REACHABLE. Error: Unable to connect to the remote server
Error: A connection attempt failed because the connected party did not
properly respond after a period of time, or established connection fa
iled because connected host has failed to respond 192.168.0.3:8192
Error count: 1.
I've checked and the Web Management Service is indeed running.
Another Update:
I've completely paved the system and set it up again from scratch. I've done nothing out of the ordinary, just installed the IIS role and made sure to check "Management Service" under Management Tools, which is required for WMSVC to run. I then installed Web PI, and installed "Recommended Configuration for Hosting Providers", which will install Web Deploy 3.0. However, I did notice there was an error while installing this (I believe I got this error the last time as well). It looks like:
I've also attached the log files here.
I then tried to install Web Deploy 3.0 manually, however it says it's already installed. Next, I downloaded the MSI directly from http://www.iis.net/download/webdeploy and ran it in "Repair" mode. That seems to have worked. I also noticed that the WMSVC service is up and running. So this looks good.
Still, MSDeploy will not connect. I thought it might be some sort of firewall issue, so I ran it locally. I've tried using both HTTPS and HTTP to connect. HTTPS gives me an error, HTTP just times out after 2-3 minutes.
HTTPS:
msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'f3a54096-adc4-4f54-9e4f-ad8fde12edb6' for connections to the remote server.
Error Code: ERROR_CERTIFICATE_VALIDATION_FAILED
More Information: Connected to the remote computer ("staging") using the specified process ("Web Management Service"), but could not verify the server's certifi
cate. If you trust the server, connect again and allow untrusted certificates.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED.
Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Error: The remote certificate is invalid according to the validation procedure.
Error count: 1.
HTTP:
msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=http://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'ebee66f0-08e5-4d9d-98ea-0c2e59784895' for connections to the remote server.
Error: Could not complete the request to remote agent URL 'http://staging:8172/msdeploy.axd'.
Error: The operation has timed out
Error count: 1.
(Updated 2016-03-07 - NOTE: non-Administrator deployments also require ?site=IIS_SITE_NAME after msdeploy.axd, otherwise the connection is treated as global and requires Administrator access)
Not sure how missed this originally, but your problem is the computerName parameter. Non-administrator deployments are only supported when using WMSVC, for which you need to specify the full URL.
Try the following
msdeploy -verb:sync ^
-source:appHostConfig="KitchenPC",computerName=https://192.168.0.3:8172/MsDeploy.axd,userName=kpcpublish,password=secret,authType=Basic ^
-dest:package=c:\DeployTest\KPC.zip
From the docs:
The computer name will be translated to the default Web Deploy URL. For example, computerName=Server1 will become http://Server1/MsDeployAgentService. If the remote service is running with a custom port or URL, you must specify the full URL
And from the install instructions:
The MSI will not install the Web Management Service handler component if the Web Management Service is not installed; the handler component is necessary for non-administrator deployments
(I couldn't find a more explicit canonical source that describes WMSVC as a requirement for non-admin deployments)
Figured It Out!
So, it seems that (at least by default), WMSVC only listens on HTTPS, and HTTP will just time out. However, since my certificate was self-signed, I had to use the -allowUntrusted command line option.
That was almost enough. I also had to specify authType=Basic like Richard originally suggested. So, to put it all together, this is the MSDeploy command line that will actually work:
msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://192.168.0.3:8172/msdeploy.axd,authType=Basic,userName=Publish,password=secret -dest:package=c:\DeployTest\KPC.zip -allowUntrusted
After configuring Web Deploy my server as follows. I continued to get HTTP 404 connection failures. In may what worked for me was the following additional efforts...
Uninstall all previous version of Web Deploy that existed. I was not even aware they existed; however, previous versions appear to conflict with completing a connection to the latest Web Deploy service. Newer version don't uninstall their predecessors. In the last part, I was getting HTTP 401.7 - File Extension Denied.
For good measure, performed a repair of the current version of Web Deploy, currently Microsoft Web Deploy 3.6
For good measure, recreate and import my Visual Studio 2013 deployment profile...
recreate the publish settings file using the Configure Web Deploy Publishing dialogue available from the Deploy context menu option of the target website in IIS Manager's Connections panel. (Note, the publish settings file will be recreated when you press Setup as the file whose full path is specified in the dialogue entry, Specify a location to save the publish settings file)
Copy or otherwise make the publish settings file available to Visual Studio and selecting Publish from your project's context menu, create a Visual Studio publish profile by importing the publish settings file.
Try restarting the wmsvc service on the target machine
As alluded to above, make sure that you are connecting over HTTPS. If you are attempting to connect as Admin, but not using SSL, you get the following error:
Error Code: ERROR_USER_NOT_ADMIN
More Information: Connected to 'host' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'host'.
(Where 'host' is your server name)
For me the problem was that my password expired... I've noticed it when loging out and then tried to login back trhough remote desktop.

Resources