guacamole-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul A <>
Subject RE: Sending private-key in json (using API to open session)
Date Thu, 09 May 2019 23:59:46 GMT
Hi Mike

I tried both an RSA key and DSA key. I used ssh-keygen -t dsa  or
ssh-keygen -t rsa to generate the keys, and copied the content of the
appropriate key into the json.

Running guacamole in a pure docker setup – with the containers that you
provided, and even built a new stack of the docker containers on a new
docker host a week back, this pushed the guac version to 1.0.0 – still same

*From:* Mike Jumper []
*Sent:* Friday, 10 May 2019 6:15 AM
*Subject:* Re: Sending private-key in json (using API to open session)

I believe what you are encountering now is no longer related to the JSON
extension, but rather to the private key in use. If you are sure that there
is no passphrase associated with the key, you are probably seeing a
passphrase prompt because the SSH support within Guacamole is unable to
load the key and is assuming that this is due to the key requiring a

Do you see any messages from guacd regarding the key?

Any idea what specific algorithm was used to produce the key? Earlier
emails mention "RSA_DSA", but an SSH private key would use either RSA or
DSA, not both. It's possible that you are inadvertently using an algorithm
that the version of libssh2 on your system does not support.

- Mike

On Wed, May 8, 2019 at 3:26 PM Paul A <> wrote:


Anyone have any ideas?



*From:* Paul A []
*Sent:* Thursday, 2 May 2019 9:44 AM
*To:* '' <>
*Subject:* RE: Sending private-key in json (using API to open session)

Hi Mike

I just looked at the logs, and I have not been seeing that error for the
last 2 days of testing, I am just seeing this each time I test:

12:48:53.606 [http-nio-8080-exec-33] INFO
o.a.g.r.auth.AuthenticationService - User "user" successfully authenticated
from [X.X.X.X,].

12:49:07.126 [http-nio-8080-exec-47] INFO
o.a.g.tunnel.TunnelRequestService - User "user" connected to connection

I see the first line of the log when it connects – and I see this in the
web page:

[image: cid:image001.png@01D500CB.94036830]

Then then doesn’t matter what I enter, it disconnects the web page and I
get the error message on the web page, and then I see the next line in the
log file.

More then happy to deploy a docker stack of guacamole for you to jump in,
if required, or is this now a different issue?

*From:* Mike Jumper [ <>]
*Sent:* Thursday, 2 May 2019 5:32 AM
*Subject:* Re: Sending private-key in json (using API to open session)

On Wed, May 1, 2019 at 5:42 AM Paul A <> wrote:

Hi Mike

Thanks for getting back to me, appreciate it.

I have put \n at the end of each line – and confirmed with 3 online JSON
validators that its valid JSON. Yet its still not working- keeps asking for
passphrase key.

The issue isn’t the JSON being generated, at the moment I am manually doing
it to confirm its working, and then passing it through your
script to get the output and put that into https://<GACAMOLE>/#/?tokens
to get the token, then passing it to https://<GACAMOLE>/#/?token=
load the page. I am doing it this way to make sure it all works – and doing
this exact thing with using a json that doesn’t have a key, but has a
password works. An ssh’ing into the client machine from this exact server
while passing this rsa_dsa key (via the ssh –I RSA_DSA file) also works
(doenst ask for a password).

So from this, I know the key works using ssh directly, and I know the API
works, and the json file format works when not using a multi line key. But
adding the 2 together fails.

So I am stuck and frustrated as to where else I can look to a resolution.

If you are still seeing:

"ERROR o.g.g.auth.json.user.UserDataService - Received JSON is invalid:
Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9)
to follow minus sign, for valid numeric value at [Source:; line: 1, column: 3]"

Then the only possibility really is that the JSON is invalid. We can take a
look at the JSON, etc., but we would of course need the full JSON. I'd

1) Setting up a temporary user on an isolated system with a private key
that you wouldn't mind sending verbatim to a mailing list

2) Encrypting, etc. the JSON with a new, temporary key for
guacamole-auth-json that you will use only for this test

3) Reproduce the problem with the above

4) Send the error(s), the data that you sent to the token service producing
those errors, and the shared key used to encrypt the JSON here.

That would be enough to take a look. Without that, all I can really do is
look at the error that says "JSON is invalid" and say "yep, your JSON is

- Mike


View raw message