[Pharo-dev] IceCredentialsProvider sshCredentials ?

Sven Van Caekenberghe sven at stfx.eu
Tue May 7 10:33:05 EDT 2019


I am trying to deploy on a server by building a Pharo image there.

I want to use a readonly 'deploy user', using a specific certificate.

I have been trying lots of things, but I cannot get where I want.

So the user account is arbitrary, it just contains a key pair. If I add the key pair to the ssh-agent, I can clone my repository on the command line.

Now I want to script this from Pharo. The script starts as follows:

| remote location |
remote := IceGitRemote url: 'ssh://git@bitbucket.myhost.be:1234/tthree/t3-pharo.git'.
location := FileLocator localDirectory / 'iceberg' / remote projectName.

IceRepositoryCreator new 
  remote: remote;
  location: location;
  createRepository.

On my development machine (macOS), this works fine.
But this does not work on the Linux server, it says

IceAuthenticationError: There was an authentication error while trying to execute the operation: . 
This happens usually because you didn't provide a valid set of credentials. 
You may fix this problem in different ways: 

1. adding your keys to ssh-agent, executing ssh-add ~/.ssh/id_rsa in your command line.
2. adding your keys in settings (open settings browser search for "Use custom SSH keys" and
add your public and private keys).
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git)

It does not matter if the ssh-agent has the certificate listed (ssh-add).

Adding 

IceCredentialsProvider useCustomSsh: true.
IceCredentialsProvider sshCredentials
	publicKey: '/home/t3/.ssh/id_deploy_pharo_ed25519.pub';
	privateKey: '/home/t3/.ssh/id_deploy_pharo_ed25519'

Does not make a difference. Is this supposed to work ?

Maybe there is some other problem ?

Sven




More information about the Pharo-dev mailing list