2
3

More than 1 year has passed since last update.

Akamai MFAを利用してSSHの公開鍵認証をよりセキュアにする

Posted at

Akamai MFA とは

Akamai MFAは、FIDO2に対応しているスマートフォンのMFA(多要素認証)アプリです。
不正アクセスに対して強力なMFA機能を利用することによって、対象のアカウントは、フィッシングやソーシャルエンジニアリング攻撃など、アカウントに対する様々な攻撃から保護することができます。

Akamai MFAは以下のプラットフォームに対応しており、無料のアプリです。

  • iOS 13 以降 (iPad、iPhone、iPod Touch) : App Store
  • Android 7 以上 (スマートフォンおよびタブレット) : Google Play

AkamaiはKryptCoを2019年に買収し、KryptCoが開発していたMFAアプリKryptonの機能はAkamai MFAに引き継がれています。
Akamai MFAはゼロトラストネットワークアクセス(ZTNA)のソリューションであるAkamai EAAとも組み合わせることができます。

image.png

Krypton akr FIDO2 SSH Agent(akr) を利用してSSH接続をよりセキュアに

サーバーやGitへSSH接続する際には通常、公開鍵認証にて接続します。
この接続の際には、認証を行うために秘密鍵利用する必要がありますが、その秘密鍵は接続元の端末内で管理されることが多いです。
Akamai MFAでは、その秘密鍵をスマートフォン内で管理することができ、秘密鍵を利用する際にMFAによる認証を付与することができます。
この方法により、秘密鍵を複製または漏洩を防ぐことができ、不正に秘密鍵を利用されることを防ぐことができます。
SSH接続元の端末がスマートフォンのAkamai MFAに秘密鍵を取得する際に利用するのが、Krypton akr FIDO2 SSH Agent になります。

akrの機能はベータ提供中となり、機能の動作を保証するものではありません。
https://techdocs.akamai.com/mfa/docs/akr-fido2-ssh-agent

image.png

akrをインストールする

akr はオープンソースで提供されており、無料で利用することができます。

今回は、SSHの接続元はMac、接続先はLinodeのサーバーという構成にて接続方法を紹介します。

akrは以下の環境にてインストールが可能です。

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

akr インストール (macOS)

akrを動作させるためには、OpenSSHのバージョンが8.2以上である必要があります。
今回はHomebrewを利用したアップデート方法になります。

# SSH Version確認
ssh -V

# 8.1以下の場合はVersion UPを実行
brew install openssh

# shell 再読み込み
exec $SHELL -l

# SSH Version確認
ssh -V

akrと動作に必要なpinentryをインストールします。

brew install akamai/mfa/akr
brew install pinentry-mac

akrの初期設定をします。

# akrの初期セットアップ
akr setup
# 設定内容の確認
akr setup --print-only

ssh configに以下の設定が記載されていることを確認します。

cat ~/.ssh/config

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

pairのコマンドを発行し、端末とAkamai MFAのアプリを紐付けします。

akr pair

QRコードが表示されます。Akamai MFAのアプリを立ち上げ、表示されたQRコードをスキャンし、pairを完了させます。

image.png image.png

秘密鍵の作成を行い、公開鍵情報を取得します。

akr generate --name mykey

sk-ecdsa-sha2-nistp256@openssh.com XXXXXXXXXXXXXXXXXXXXX ssh:mykey

公開鍵の情報はloadコマンドで確認することができます。(秘密鍵の情報は確認することはできません。)

akr load

接続先のLinodeサーバーに公開鍵を登録

接続テストとして、今回はLinodeのサーバーに公開鍵を登録します。

サーバーに接続し、先程表示された公開鍵情報を登録します。

vim ~/.ssh/authorized_keys

sk-ecdsa-sha2-nistp256@openssh.com XXXXXXXXXXXXXXXXXXXXX ssh:mykey

Akamai MFAに登録された秘密鍵を利用してLinodeのサーバーに接続

akrをセットアップしたmacOSに接続先のサーバー情報をssh configに記載します。

vim ~/.ssh/config

Host linode
  Hostname 192.0.2.1(記載しているIPは記入例)
  User root

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

サーバーにSSH接続します。

ssh linode

接続の際にAkamai MFAにプッシュ通知が来て、Allowすることで秘密鍵の情報を取得し、SSHすることが可能となります。

image.png

まとめ

Akamai MFAとakrを利用することにより、SSH接続する際の秘密鍵の管理をよりセキュアに運用していくことが可能です。
Linodeなどのサーバーを運用する場合や、Githubへの接続への利用など様々な公開鍵認証を行う接続に活用していくことができます。

関連記事

アカマイ・テクノロジーズ合同会社のQiitaではAkamaiの製品を活用した開発者向けの記事を記載しております。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3