Skip to main content

Remote two-factor authentication, with ssh public keys, and google authenticator

Installing and using the Google Authenticator was pretty easy. I give credit to howtogeek.com for their straight forward instructions on using it. However, I wanted to change some things about their setup. You'll find my instructions to be similar to theirs, but with some important differences. This was done on Ubuntu 14.04.

Install the google auth pam module:
sudo apt-get install libpam-google-authenticator
Login as the user you will be using the authenticator with, and run the following command:
google-authenticator
Set up Google Authenticator on your phone using either the QR code it generates, or manually type it in.

Now, this is where I diverge a little from the howtogeek version. Open up the /etc/pam.d/sshd file on your machine. Put this at the very top of the file:
auth sufficient pam_access.so accessfile=/etc/security/access-local.conf
auth sufficient pam_google_authenticator.so
And then comment out the following line in the same file:
#@include common-auth
 Now, open up your /etc/ssh/sshd_config file. Edit or add the following lines to be as follows:
ChallengeResponseAuthentication yes
PubkeyAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive:pam
Lastly, create the file /etc/security/access-local.conf and edit it to your liking. IPs in here will bypass the google authenticator requirement. Mine looks like this:
# only allow from local IP range
+ : ALL : 192.168.1.2/32
+ : ALL : LOCAL
- : ALL : ALL
Restart ssh, and you should be all set up.
sudo service ssh restart
Ok. So let's talk through what this does. sshd has now been configured to require two things to allow access. It will require public key auth, and it will ask pam to authorized you as well. Pam will first look at your IP address, and see if it matches anything in the /etc/security/access-local.conf file. If your IP address matches one of the ranges in that file with a + next to it, it will say that you are good, and let you in. If you don't match what's in that file, then it will ask you for your google authenticator code that you will need to get from your app on your phone. This is nice, because it allows you to have an extra layer of security for anyone trying to access your machine from a non-standard location, while from other locations, the authorization process is just an easy public key auth process.

As a reminder, google authenticator does NOT talk to google. It works based on a common secret key that the server and the phone share. And based on that key, and the time of day, it generates random numbers. So your server can recognize your phone with those random numbers. Please note however, that the secret key is stored in plain text on the server in /home/YourUserName/.google_authenticator. Anyone with root access can read that file, and use that key, so it is still imperative that you keep your ssh private key secure. 

Comments

  1. Borgata Hotel Casino & Spa Opening in Atlantic City, NJ
    Borgata Hotel Casino 상주 출장샵 & 양산 출장마사지 Spa will be the first to open 안동 출장마사지 in Atlantic 논산 출장안마 City when it opens next month. Located in Atlantic City's 제주 출장안마 Marina District, Borgata

    ReplyDelete
  2. With the fundamental technique, you need to} never break up 10's, 5's or four's, all the time break up 8's, and, in the different cases, break up towards an up card of 2 to 7, however not otherwise. Blackjack (also known as as|often recognized as} twenty-one or sometimes pontoon) certainly one of the|is among the|is probably certainly one of the} most popular on line casino card video games on the earth. The name blackjack comes from truth that|the fact that} when blackjack was first introduced in the 카지노사이트 united states it wasn't very popular, so casinos and gambling houses tried providing completely different bonus payoffs.

    ReplyDelete

Post a Comment

Popular posts from this blog

An Open Letter to My Friends in Sales and Biz Dev

To my Friends in Sales: I get a lot of sales calls, and I don't mind it, but it means that I've got to keep them quick or they quickly take up too much time. So I created this list of tips for you so we can make the best of your time and mine: I will ask questions on the introductory call about features and prices. Please be ready to answer those. I want that information so I can decide if it would be worth your and my time for a demo. If you don't have the information or can't give it to me, then that's probably as far as the call will go. I appreciate that you are trying to be friendly by talking sports and weather etc., but I'd rather get to the point. Keep it on topic please. Please don't use leading questions like: "If you could succeed in this difficulty, how would that help you?" and such. I know my own situation just fine, what I don't know is your product. So let's keep the conversation on that please. If I decide to ge

Strengthening the Weakest Link

Employees are frequently cited as being the weakest link in security. Rather than argue this point, I'm just going to reference a few articles here and move on ( Fortune , Fraud-magazine , Forbes ). Now, in general, employees are considered the weakest link because they don't always make smart decisions. For example, in one company I was at, a phishing email was sent out to many of the employees. The email was from "Emily", the subject was "New Pics" and the body was simply "Check out my latest pics" with a link. I was amazed at how many people clicked on that link and consequently installed a virus. A similar attack came a few months later, but spread over chat instead. I felt that we needed to train our employees better. I should note here that there is a good argument for security software that is idiot proof, that prevents employees from hurting their networks or losing information. I entirely believe in using such software, but hacker