Quick setup for ssh into ubuntu headless server and force use of a private key

  1. Install openssh-server on ubuntu headless server
    • server$ sudo apt-get install openssh-server
  2. Generate keypair
    • user@client:~$ ssh-keygen
      • (accepting all defaults places keys in ~/.ssh/* &&& uses default names of “id_rsa”, “id_rsa.pub” &&& uses RSA 2048 / SHA 256)
      • um… set a passphrase for the private key. fo’real
  3. Send public key to server
    • user@client:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub [server_name||ip_address]
  4. (test via password) ssh from client to ubuntu headless server
    • user@client:~$ ssh admin@server
  5. Disable ssh via passwords
    • admin@server:~$ sudo vi /etc/ssh/sshd_config
      • from: #PasswordAuthentication yes
      • to: PasswordAuthentication no
    • (test via password) ssh from client to ubuntu headless server
      • user@client:~$ ssh admin@server
      • if this fails with “Permission denied (publickey).” you are winning
  6. (test via private key) ssh from client to ubuntu headless server
    • user@client:~$ ssh -i ~/.ssh/id_rsa admin@server

Leave a comment