@galdor A const ssh_key * is equivalent to struct ssh_key_struct **. In both cases it's a pointer to a pointer to a struct.
The way to think about it is that the "pointer to ssh struct" is the object itself. The fact that it's a pointer is irrelevant. When you declare a ssh_key * all you do is create a pointer to this object type (which happens to be a pointer).