How To: Create SSH Remote Login Mac OS X and Force Private Key Authentication Only - Putty
This guide will show you how to enable SSH (remote login) on your Mac OS X machine and connect to it using a private key file (.ppk) while disabling password logins (more secure). In this example, we will setup the remote connection using Putty.
- Enable SSH on your Mac. Go to System Preferences -> Sharing -> Remote Login.
- Now, we will generate our private and public SSH keys on our Mac. Open Terminal and type the following commands.
Create a .ssh directory. This directory will be hidden in your Mac X User home path.
mkdir .ssh ; cd .ssh
Generate SSH private and public keys.
ssh-keygen -b 1024 -t rsa -f id_rsa -P ""
- Now, we want to create an authorized_keys file in the same directory to allow remote hosts to connect to our Mac using the key file we just generated.
Create the authorized_keys file in Terminal.
- Let’s take a look at the keys and authorized keys files we just created. At the menu bar, select Go -> Go to Folder… and type /Users/USER/.ssh replacing USER with your Mac X username. We see 3 files.
authorized_keys - your shared public key file
id_rsa - your private key
id_rsa.pub - your public key
- We want to copy our Public Key exactly into our authorized_keys file. Open id_rsa.pub and copy the text into your authorized_keys file. Save the file. (To do this, you can drag both files to your Desktop to gain access to perform the copies if needed, then drag back to the .ssh folder). See example below.
- In order to use Putty to connect via SSH via a private key, we must convert the id_rsa private key to Putty format (.ppk). We will use PuttyGen.exe to convert our id_rsa private key to a .ppk file. Download and install PuttyGen here.
Note: You can run PuttyGen.exe on Mac OS X following this guide. Otherwise, you will need to run PuttyGen on a Windows machine.
- Launch PuttyGen.exe and click Load.
- For Files of Type select All Files. Locate and select your id_rsa private key.
- Click Save private key. Click Yes to save without a password (this is not needed). You can name the file whatever you want.
You now have a .ppk file we can use for our Putty connection. Save this key somewhere safe and never share it with anyone!
Next, we will configure SSH on our Mac to only allow key authentications and disable password authentications. This will immediately drop a connection made to our Mac unless a key file is being used (more secure).
Configure SSH on Mac OS X to Force Private Key Authentication Only
- At the menu bar, select Go -> Go to Folder… and type /etc/ssh/ and hit return.
- Open the sshd_config file. (To edit this, file you can drag it to your Desktop to edit then drag back to same folder)
- We need to change 2 lines in sshd_config file.
Change UsePAM no
Uncomment and change PasswordAuthentication no
- Save the ssh_config file.
- Restart Mac X remote login for our changes to take affect. Go to System Preferences -> Sharing -> Remote Login and turn off / on.
Now, we can use Putty to create an SSH connection to our Mac we generated our keys on. Download and install Putty here.
Note: You can run Putty.exe on Mac OS X following this guide.
Open Putty and create a new connection. We will point to our private key file (.ppk). Go to Connection -> SSH -> Auth and load the .ppk file here. This can be tricky, ensure your creating a new connection in Putty and saving it so it remembers the key we just imported.
Try connecting. You will receive a login prompt for username. This will be the user of your Mac (any other username you put here will fail immediately).
If successful, you will login to your shell immediately pictured below! No password needed!
Please use the comment form to report dead links.