Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
why did you create two different CA for host and users? host key are signed with the -h switch, so I cannot use host key/cert to authenticate me as user on different host (and viceversa cannot use users cert to spoof an host)… what is the advantage in having two different CAs for the two use-case?
Thank you this is really helpful. The scripts worked for me until the end of the “configuring components to use use hosts certificates” section. All was well until the cat server_ca.pub command. There are now two rsa keys on the ‘ssh host server’, ssh_host_rsa_key.pub and ssh_host_rsa_key-cert.pub. They have the same fingerprint, the first was generated at system install time and the second as part of this script process This is the fingerprint presented by server when attempting to ssh in from the third machine, client. However this is not the fingerprint of the server_ca.pub file. Attempting to create a knownhosts entry with the server_ca.pub data is rejected. However creating a knownhosts entry with the ssh_host_rsa_key.pub data is successful.
There appears to be something missing between the cert server and the ssh host server. The ssh host server keys is signed by the cert server and that is captured in ssh_host_rsa_key-cert.pub. Is there an active role between ssh host server and cert server during key validation? If so I missed that part. That would require network reconfiguration, the cert server is currently inside the firewall and is not accessible by the ssh host server. Given that ssh host server is protected is there a measurable advantage to active cert verification or is two way client-server, server-client verification sufficient protection.
I have a question, Could this authentication method be safe from mid-man attack? As I understand, client will send the signed public key to server, and server verifies that the key is signed by CA. The signed key need to be transferred via network, if the attacker can get the signed public key, then he can pretend to be the user, am I right?
Very clear and easy to follow. I think there is one step missing in the Signing User Login Keys section where the client keypair has not been created anywhere so when you do the copy to the CA the key does not yet exist.
Very helpful article, thanks! Question: for this to work the user has to live locally on the server that the client wants to SSH to (target machine.) Is there a way to be able to do this without having to create a local user on the target machine? For example in LDAP we can set some attributes at the LDAP server to dictate what the user can do on the machine, and thus the target machine does not need to have any record of the user. If there a way to do the same with the certificate being generated?
Thanks this is great <3 If you have enough servers/users to have a certificate authority, woudln’t revoking a certificat still be as painfull as not having a ca?
I have one server and 3 clients accessing it. I want to opt for certificate based ssh but i am unable to understand why one needs a separate CA server? Is it possible to have the CA on my host server itself? If yes then how do the configurations change?
Great article. Is it possible to setup such auth on Windows SSH client? Which one?