Install git, gcc, and make on your system
$ apt-get install git make gcc
$ yum install git make gcc
Execute git command as noted on google's site:
$ git clone https://code.google.com/p/google-authenticator/
Compile and install the google two factor auth PAM module and application
$ cd google-authenticator/libpam/
$ make install
Add the following lines to the /etc/pam.d/sshd
auth required pam_google_authenticator.so
Location of SSH server configurations
/etc/ssh/sshd_config
Add/modify the following stanza to SSH server configuration:
ChallengeResponseAuthentication yes
Create Google two factor profile for SSH user and answer the setup questions based off your preferences
$ google-authenticator
Restart SSH server
$ service ssh restart (on CENTOS try $ service sshd restart)
Wrap Up
In Debian based systems you can comment out the system wide common-auth by simply adding a # to the beginning of the @include common-auth.
If you want to use google two auth with other applications simply add it to the appropriate /etc/pam.d/ file
Other useful PAM modules include the Barada module: libpam-barada (OTP with Android Client), pam_winbind (Samba Active Directory authentication module), and many more.
Make sure you have dual SSH connections and are sudo or su as a privileged user. Also make sure any files you configure today are backed up before you edit them.
When setting up Two Factor Auth profiles, go into cleanup mode to ensure you don't use the QR code url where it can be later retrieved from your url history. Also make sure you cleanup your command line and clipboard history so that emergency scratch codes and secret keys can't be found by wondering eyes.