GithubHelp home page GithubHelp logo

akr's Introduction

Akamai "Krypton" FIDO2 SSH Agent and CLI

The akr command line utility is Akamai's "Krypton" SSH Agent, the successor to kr which works exclusively with the Akamai MFA Authenticator for iOS and Android. Akr enables your smart phone to become a "push-based" FIDO2 authenticator for SSH authentication.

akr enables SSH to authenticate with a FIDO2 key stored in the Akamai MFA Authenticator app (iOS + Android).

akr runs as an SSH agent: when you run ssh [user@server], SSH asks the agent for a FIDO2 private key signature operation. This request is routed to a paired mobile phone (running the Akamai MFA app), where the user decides whether to allow the operation or not. If allowed, the phone simply sends the signature back to the agent. Private keys never leaves the phone.

โš ๏ธ akr is currently in early-preview mode! Please contact us with any issues you find or feature suggestions.

Getting Started

First run

  1. First, run akr setup to create configurations and start the agent
  2. Next, pair your device: run akr pair
  3. Scan the QR code with the Akamai MFA app
  4. Run akr generate --name mykey to generate your first SSH key in Akamai MFA. This will output your SSH public key.
  5. Add your public key to a server or github.com

Verify everything works

To verify whether your Akamai MFA FIDO2 key works, try the following:

$ ssh ssh.demo.krypt.co -p 5000

If everything works correctly, you should see something like this:

Hello John!

You have successfully authenticated to the Akamai MFA SSH FIDO2 test server! 

Overview of Commands

Usage:
akr [options] [command] [arguments]

Options:

Syntax Description
-V, --version Display the version number for the akr client.
-h, --help Display usage information for akr client.

Commands:

Command Description Example
setup Setup the background daemon and updates ssh configuration akr setup --ssh-config-path <ssh_config_file_path>
pair Pair with your phone/tablet akr pair
generate Generate a new SSH credential akr generate --name <ssh_credential_name>
unpair Unpair from your phone/tablet akr unpair
load Load public keys from the Akamai MFA app on your phone/tablet akr load
status Get pairing info from your phone/tablet akr status
check Health check of all the dep systems and system configs akr check

Requirements

  • macOS (10.15+) or Linux (64 Bit) (Debian, RHEL, and CentOS).
  • OpenSSH Client and Server 8.2+

Installation instructions

macOS (brew)

brew install akamai/mfa/akr

Debian

curl -SsL https://akamai.github.io/akr-pkg/debian/KEY.gpg | sudo apt-key add -
sudo curl -SsL -o /etc/apt/sources.list.d/akr.list https://akamai.github.io/akr-pkg/debian/akr.list
sudo apt update
sudo apt install akr

CentOS/RHEL

sudo vim /etc/yum.repos.d/akr.repo

[akr]
name=akr repository
baseurl=https://akamai.github.io/akr-pkg/rpm/
gpgcheck=0
enabled=1
sudo yum -y update
sudo yum -y install akr

Build from source

akr is built entirely with Rust. Ensure you have Rust installed (https://rustup.rs) and run cargo build.

Notes on Configuration

Running akr setup updates your SSH config file and installs the akr ssh-agent as a background service on your system. To see what akr configures, run akr setup --print-only.

The SSH config additions looks as follows:

# Begin Akamai MFA SSH Config
Host *
	IdentityAgent /Users/<username>/.akr/akr-ssh-agent.sock
# End Akamai MFA SSH Config

This enables your native system SSH to communicate to the akr ssh-agent process over a unix socket.

Security Disclosure

For any security related questions, please contact our security team. Please disclose any issues responsibly using our Akamai Security GPG Public Key and send communications to [email protected].

License

Copyright (c) 2021, Akamai Technologies. All rights reserved.

akr's People

Contributors

agrinman avatar nikhilty avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.