YubiKeyを使ったSSH公開鍵認証(FIDO)

はじめに

YubiKey を使ってSSHをセキュアにする方法がYubico の公式サイトに掲載されていました。

簡単に整理すると下記のようなことができるようです。

  • SSHの公開鍵認証 - クライアント側にYubiKey を挿す
    • PIV(Smart Card)※PKCS #11
    • PGP
    • FIDO2 ※OpenSSH 8.2 のFIDO ハードウェア認証機能を使う
  • SSHサーバの2要素認証の実装 - サーバ側にYubiKey を挿す
    • OTP

この中のFIDO2 を使ったSSHの公開鍵認証を試してみたので、その手順などを解説します。

FIDO2 を使ったSSHの公開鍵認証

  • OpenSSH 8.2p1(2020.2.14リリース) でFIDO ハードウェア認証がサポートされた
  • YubiKey 5 などのFIDOデバイスは、OpenSSH に追加された公開鍵暗号方式“ecdsa-sk” と “ed25519-sk” にサポートされている

つまり、ssh-keygen の-t オプションで“ecdsa-sk” または “ed25519-sk” を指定すると、FIDOトークンに紐づいた鍵を生成することができ、その後パソコンにFIDOデバイスが接続されていれば、他の公開鍵暗号方式の鍵と同じように、SSHサーバに接続することができます。
YubiKey の場合、SSHサーバへの接続時にユーザーにYubiKey のタッチを求めて、タッチしたことをユーザーが接続を明示的に許可したこととして扱うようになっています。

だからどう安全なのかというと、第三者が鍵だけを窃取しても、鍵と紐づいているYubiKey が物理的に手元にないと、鍵を窃取した第三者はSSHサーバに接続することはできない、ということになります。

環境

クライアント側の環境

  • MacBook Pro 2022(macOS Monterey 12.4)
  • OpenSSH client
    • macOSにバンドルでインストール (8.6p1)
    • Homebrew でインストール(9.0p1) ※当手順に記載
  • YubiKey Manager
    • GUIツール (1.2.4)
    • CLIツール (4.0.7)
  • YubiKey 5 NFC(Firmware 5.4.3)

サーバ側の環境

  • Ubuntu 20.04.4 LTS
  • OpenSSH server 8.2p1

YubiKey の初期設定

1. YubiKey のFIDO2 のPINを登録

出荷時の状態のYubiKey にはFIDO2 のPIN が登録されていないので、YubiKey Manager を使って登録します。
YubiKey Manager にはGUIツールとCLIツールの2つありますが、どちらを使ってもPIN の登録ができます。
ちなみに、PIN を登録しないと、CLIツール のFIDO 関連のコマンドが下記のように機能してくれませんでした。(コマンドの実行にPIN の入力が必要な2つ目と3つ目のコマンドがエラーになってる)

% ykman fido info
PIN is not set.

% ykman fido access verify-pin
Error: This feature requires having a PIN. Set a PIN first.

% ykman fido credentials list
Error: Credential Management requires having a PIN. Set a PIN first.

ここでは、GUIツール を使ってFIDO2 のPIN を登録します。

GUIツールを起動してYubiKey をパソコンに挿入し、メニューの[Applications] > [FIDO2] をクリックします。

YubiKey Manager(GUI) FIDO2 PIN(未登録)

FIDO2 PIN のところに”No PIN is set” と表示されています。
[Set PIN] をクリックします。

YubiKey Manager(GUI) FIDO2 PIN(登録)

登録するPINNew PINConfirm PIN の2ヶ所に入力して[Set PIN] をクリックします。
PIN は4文字以上の英数字

YubiKey Manager(GUI) FIDO2 PIN(登録済)

元の画面に戻りました。
A PIN is set, 8 retries left” の表示に変わりました。
PIN が登録され、PIN の入力失敗が8回再試行できる状態になっています。
登録したパスワードは忘れないようパスワードマネージャー等に保存しておきましょう

PIN の登録が完了したので、再度CLI ツールのコマンドを実行してみます。

% ykman fido info
PIN is set, with 8 attempt(s) remaining.

% ykman fido access verify-pin
Enter your PIN:
PIN verified.

% ykman fido credentials list
Enter your PIN:

今回はエラーになりませんでした。
コマンドについての簡単な説明を以下、記載しておきます。

  • ykman fido info
    • FIDO2 アプリの状態を表示するコマンド
    • PIN の登録状態、PIN 入力のリトライ回数が表示される
  • ykman fido access verify-pin
    • FIDO2 をサポートするYubiKey の場合、PIN 入力のリトライ回数をリセットするコマンド
    • コマンド実行時にPIN の入力が求められる
    • 他のPIN 入力が必要なコマンドを実行するとPIN のリトライ回数がリセットされるので、このコマンドが役に立つことはなさそう。失敗する時はこのコマンドも実行できないわけで。。
  • ykman fido credentials list
    • FIDO2 アプリの登録情報を一覧表示するコマンド
    • コマンド実行時にPIN の入力が求められる

GUI ツールを使ったPIN の登録の解説はここまでで、
参考まで、CLI ツールのPIN を登録するコマンドを載せておきます。

ykman fido access change-pin -n<設定するPIN>

鍵の生成〜サーバに鍵を登録〜SSH接続

1. macOSにバンドルでインストールされていたOpenSSHを使って鍵を生成(失敗)

ed25519-sk” を指定してssh-keygen を実行します。

% ssh-keygen -t ed25519-sk
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation
Key enrollment failed: unknown or unsupported key type

失敗しました。
不明もしくはサポートされていない鍵タイプ” だそうです。

Yubico のDeveloper 向けサイトに「Disabled by Apple on the bundled version of OpenSSH in MacOS as of the last update to this page」という記載が見つかりました。macOS にバンドルされているOpenSSH は“ecdsa-sk” と “ed25519-sk” が無効にされているみたいです。

Apple のDeveloper 向けサイト等に何か情報がないか探しましたが、何も見つかりませんでした。これ以上突っ込まないで先に進みます。

2. Homebrew でインストールしたOpenSSHを使って鍵を生成

Homebrew でインストールしたOpenSSH であれば鍵生成のコマンドを実行できたという情報が見つかったので試してみました。(結論、成功)

Homebrew でOpenSSH をインストールします。

brew install openssh

Homebrew でインストールしたOpenSSH のコマンドにPATH を通します。
~/.zshrc に下記を追記します。
(2022.6.16 削除)

export PATH=$(brew --prefix openssh)/bin:$PATH

source ~/.zshrc を実行して設定を反映します。 (2022.6.16 削除)

Homebrew でインストールしたOpenSSH のコマンドにPATH が通っていることを確認します。(2022.6.16 追記)

% which ssh
/opt/homebrew/bin/ssh

% ls -l $(which ssh)
lrwxr-xr-x  1 Capybara admin  31  6 16 13:49 /opt/homebrew/bin/ssh -> ../Cellar/openssh/9.0p1/bin/ssh

ed25519-sk” を指定してssh-keygen を実行します。
今回は成功したので、作成された鍵ファイルを削除して、追加で幾つかのオプションを付けて再度実行しました。

% ssh-keygen -t ed25519-sk
 → 成功
% rm ~/.ssh/id_ed25519-sk*
 → 鍵を削除

% ssh-keygen -t ed25519-sk -O resident -O application=ssh:Capybara
Generating public/private ed25519-sk key pair.
You may need to touch your authenticator to authorize key generation.
 → ここでYubiKey をタッチ👆
Enter PIN for authenticator:
 → ここで登録したFIDO2のPIN を入力

Enter file in which to save the key (/Users/Capybara/.ssh/id_ed25519_sk):
 → ここで生成する鍵のファイル名を入力(何も入力せずEnterも可)
Enter passphrase (empty for no passphrase):
 → ここで生成する秘密鍵のパスフレーズを入力
Enter same passphrase again:
 → パスフレーズを再度入力
Your identification has been saved in /Users/Capybara/.ssh/id_ed25519_sk
Your public key has been saved in /Users/Capybara/.ssh/id_ed25519_sk.pub
The key fingerprint is:
SHA256:z0xxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxd0 Capybara@mypc.local
The key's randomart image is:
+[ED25519-SK 256]-+
|        ......   |
|        ......   |
|        ......   |
+----[SHA256]-----+

% ls -l ~/.ssh
-rw-------  1 Capybara staff   525  5 29 16:31 id_ed25519_sk
-rw-r--r--  1 Capybara staff   159  5 29 16:31 id_ed25519_sk.pub

追加したssh-keygen のオプションの簡単な説明を記載しておきます。

  • -O resident
    • 鍵をFIDO 認証器内に保存する
    • このオプションの有無に関係なく、~/.ssh フォルダに鍵ペアは作成される
    • FIDO 認証器内に鍵を保存しておくと、ssh-keygen -K でカレントディレクトリに秘密鍵と公開鍵のファイルを書き出すことができる
  • -O application=ssh:<your-key-name>
    • 生成する鍵の名前を指定する
    • 指定する場合、“ssh:” に続けて任意の名前を指定する必要がある
    • このオプションを指定しない場合、デフォルトの“ssh:” で作成される
    • ここで指定した名前は、CLI ツールで鍵を削除する際に使われる(例:ykman fido credentials delete ‘ssh:Capybara’

-O resident オプションを付けたので、CLI ツールでYubiKey 内に保存された鍵を確認します。

% ykman fido credentials list
Enter your PIN:
ssh:Capybara 0000000000000000000000000000000000000000000000000000000000000000 openssh

-O application オプションで指定した名前が先頭にある行が1行出力されました。
ALLゼロが何なのかよく分かりませんが、とりあえずYubiKey 内に保存されているようです。

3. 公開鍵をサーバにアップロード&登録

サーバに公開鍵をアップロードします。

scp id_ed25519_sk.pub ubuntu@test.example:~/

サーバにSSHで接続して、接続ユーザの~/.ssh/authorized_keys公開鍵を登録します。

% ssh ubuntu@test.example

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cat id_ed25519_sk.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

4. 公開鍵認証でサーバにSSH接続

SSH の公開鍵認証でサーバに接続できるか確認します。

% ssh ubuntu@test.example
Enter passphrase for key '/Users/Capybara/.ssh/id_ed25519_sk':
 → パスフレーズを入力
Confirm user presence for key ED25519-SK SHA256:z0xxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxd0
 → YubiKey をタッチ👆
User presence confirmed

パスフレーズ + YubiKey をタッチ2要素認証でサーバに接続することができました。

5. パスワード認証を不許可に設定

SSHサーバの設定/etc/ssh/sshd_config でパスワード認証を不許可にすれば、登録した公開鍵を使った 認証しかできなくなります。

PubkeyAuthentication yes

Match User ubuntu
  PasswordAuthentication no
  AuthorizedKeysFile /home/ubuntu/.ssh/authorized_keys

systemctl reload sshd を実行して設定を反映します。

ssh-agent を使う

ついでにssh-agent を使えばパスフレーズはssh-agent が代理入力してYubiKey のタッチだけでSSH接続できるのではと試したら、SSH接続のコマンドでエラーになりました。
使ったSSHクライアントはHomebrew でインストールしたOpenSSH です。
エラーの原因や解消する方法を調べましたが見つからなかったので、記録として残しておきます。

1. ssh-agentに秘密鍵の登録〜SSH接続(失敗)

% ssh-add id_ed25519_sk
Enter passphrase for id_ed25519_sk:
 → ssh-agentへの登録は成功

% ssh ubuntu@test.example
sign_and_send_pubkey: signing failed for ED25519-SK "/Users/Capybara/.ssh/id_ed25519_sk" from agent: agent refused operation
 → サーバの接続は失敗

% ssh-add -D
All identities removed.
 → 後片付けとして、ssh-agentの登録を削除

ちなみに、SSHサーバの設定でパスワード認証を不許可にしないでおくと、SSH接続でエラーになるけれどもパスワード入力が求められ、パスワード認証を使ってSSH接続することはできました。

2. keychain関連のオプション

更についでに、ssh-add のkeychain関連のオプションを使ってみたらエラーになりました。不正なオプションとのことです。
そもそも、Homebrew でインストールしたOpenSSH にはkeychain関連のオプションがありませんでした。macOS にバンドルされているOpenSSH 限定のオプションだったようです。

% ssh-add --apple-use-keychain
ssh-add: illegal option -- -
 → 秘密鍵のパスフレーズをキーチェーンに登録しようとしたら失敗

Apple のDeveloper 向けサイトに掲載されているmacOS 10.12.2 (Sierra) のOpenSSH の更新のページに、Keychain とssh-agent の変更について書かれていました。書きっぷりがmacOS に搭載されているOpenSSH の更新と見えなくもないです。
一応リンクを貼っておきます。

YubiKey のFIDO2 を無効にする設定

YubiKey Manager にYubiKey のFIDO2 を無効にする機能があったので、こちらもどのように機能するか試してみました。

  • GUIツールとCLIツールのどちらでも無効にすることはできます
  • この設定は前述のPIN の登録をしなくてもできます

1. YubiKey のFIDO2 を無効にする

GUIツールのメニューの[Interfaces] をクリックします。

YubiKey Manager(GUI) Interfaces FIDO2(有効)

左のUSB のFIDO2 のチェックをOFF にして[Save Interfaces] をクリックします。

YubiKey Manager(GUI) Interfaces FIDO2(無効)

CLI ツールでFIDO2無効になっていることを確認します。

% ykman info
Device type: YubiKey 5 NFC
Serial number: 99999999
Firmware version: 5.4.3
Form factor: Keychain (USB-A)
Enabled USB interfaces: OTP, FIDO, CCID
NFC transport is enabled.

Applications	USB     	NFC
FIDO2       	Disabled	Enabled
OTP         	Enabled 	Enabled
FIDO U2F    	Enabled 	Enabled
OATH        	Enabled 	Enabled
YubiHSM Auth	Disabled	Disabled
OpenPGP     	Enabled 	Enabled
PIV         	Enabled 	Enabled

% ykman config usb --list
OTP
FIDO U2F
OATH
PIV
OpenPGP

10行目のFIDO2 のUSB 欄がDisabled になっています。
また、18行目のコマンドの結果にFIDO2 が出力されていないです。

2. FIDO2 が無効の状態でSSH接続を試行

% ssh ubuntu@test.example
Enter passphrase for key '/Users/Capybara/.ssh/id_ed25519_sk':
 → パスフレーズを入力
Confirm user presence for key ED25519-SK SHA256:z0xxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxd0
sign_and_send_pubkey: signing failed for ED25519-SK "/Users/Capybara/.ssh/id_ed25519_sk": device not found
ubuntu@test.example: Permission denied (publickey).

パスフレーズの入力後にエラーになりました。

この後、再度有効にして接続できるか試したら接続できました。
無効にしてもFIDO2 の登録情報は削除されずに残ります。

参考まで、CLI ツールのFIDO2 を無効・有効にするコマンドを載せておきます。

% ykman config usb -d FIDO2
Disable FIDO2.
Configure USB? [y/N]: y
 → 無効になる ※オプション[--disable] も同じ

% ykman config usb -e FIDO2
Enable FIDO2.
Configure USB? [y/N]: y
 → 有効になる ※オプション[--enable] も同じ
  • 上記のコマンドを実行するとYubiKey が点滅するのでタップしてみると、OTP のスロットに設定したYubico OTPの44文字が入力され「Error: invalid input」になった。点滅するけれどもタッチは不要です
  • GUIツールを開いた状態でCLIツールで有効・無効を変更してもGUIツールの表示は変わらない。変更をGUIツールの表示に反映するにはGUIアプリの再起動かYubiKey の再接続が必要

3. FIDO2 が無効の状態でTwitter のログインを試行

以前の投稿「YubiKeyでTwitterアカウントを保護する」でセキュリティキーを使った2段階認証の設定をしていたので、このYubiKey の有効・無効の影響を試してみました。

Yubico のサイトにはTwitter はFIDO2U2F がサポートされていると書かれていました。

Twitter Security protocol support (U2F FIDO2)

実際に試した結果は下記の通りです。

FIDO2FIDO U2Fログイン試行の結果
無効有効ログイン成功
有効無効ログイン成功
有効有効ログイン成功
無効無効ログイン失敗

FIDO2FIDO U2F の両方を無効にした場合のみログインに失敗しました。
振る舞いとしては、1段階目のパスワード入力後、2段階目でパソコンに挿入したYubiKey が点滅せず、タップしても無反応でした。

ちなみに、前述のFIDO2 の登録情報を確認するykman fido credentials list を実行すると、ssh-keygen -t ed25519-sk -O residentで作成した鍵は表示されますが、Twitter の情報は表示されませんでした。
Yubico の下記リンク先に書かれていることが関係していそうな雰囲気があります。(セキュリティ観点で表示されないようにファームウェアがアップデートされた?)
表示されない理由が分かっても解消する訳ではなさそうなので深掘りするのは止めておきます。

参考

PGP署名の検証

はじめに

Google Play からAndroid 端末にインストールしていたTermux の更新が止まり、パッケージ管理のリポジトリへの接続も失敗するようになっていたので、公式サイトで案内されているF-Droid を使ってインストールすることにしました。

F-Droid はGoogle Play を使わずに、APKファイルをF-Droid のサイトからダウンロードしてインストールする必要があったので、ダウンロードしたAPKファイルをPGP 署名で検証しようと思ったけれど、検証の仕方が全くわからなかったので調べながらやった記録です。(GnuPG を使ってみた記録です

GnuPG

環境について

  • MacBook Pro 2022(macOS Monterey)

手順

1. GnuPG のインストール

Homebrew を使ってインストールしました。

  • GnuPG の配布されているバージョンは、2系は最新バージョンLTS の2つあったのでLTS をインストールした
  • GnuPG は2.x のxが偶数をLTS としているようです
  • gnupg@2.2 – Homebrew
brew install gnupg@2.2
Homebrew gnupg@2.2 インストール

インストール時のプロンプトに上記のコメントがありました。
インストールしたのがkeg-only だからパスが通っていないとのことなので、~/.zshrc に下記を追記します。

export PATH="/opt/homebrew/opt/gnupg@2.2/bin:$PATH"

追記した後にsource ~/.zshrc を実行して設定を反映します。

2. ファイルのダウンロード

F-Droid の公式サイトから署名対象のAPKファイル署名ファイルをダウンロードします。

F-Droid

QRコードは”F-DROIDをダウンロード” のリンク先と同じF-Droid.apk のURL なので、スマホでダウンロードする際はこのQRコードを使う感じになっています。

  • 署名対象のAPKファイル
    • F-Droid のAPKファイル。F-Droid.apk
  • 署名ファイル
    • F-Droid の署名ファイル。F-Droid.apk.asc

3. 署名の検証に使う公開鍵のダウンロード

署名の検証に使うF-Droid公開鍵を入手する方法を調べたところ、F-Droid のAPKファイルと同じ場所に置いたら公開鍵も一緒に置き換えられるだろうからそんな検証意味あるか?みたいなことが書かれていました。

PGPの信頼の輪の仕組みにより配布されている公開鍵を入手するのが正解のようです。(たぶん)

下記のコマンドを実行して公開鍵サーバの公開鍵を検索します。

gpg --search-keys f-droid
公開鍵サーバの公開鍵の検索

上記のように”f-droid” で2件検出されました。
下記の公式サイトに掲載されている公開鍵の情報のユーザID(GPG signing key)と一致している(1) を選択して公開鍵をダウンロードします。ダウンロードと同時にインポートされました。

F-Droid 署名鍵

インポートされた公開鍵を下記のコマンドで確認します。

gpg --list-keys
インポートした公開鍵(不明)

~/.gnupg/pubring.kbx に先ほど選択した公開鍵が登録されていましたが、uid の欄で”不明” という扱いになっています。

公開鍵が配布者により署名されていないので、この状態で署名を検証すると下記のように検証に失敗します。

gpg --verify F-Droid.apk.asc
署名の検証(不明)

4. ダウンロードした公開鍵に署名する

ダウンロードした公開鍵が正規のものであるかは、公式サイトに掲載されている公開鍵の情報と公開鍵サーバから入手した公開鍵が同じであることが信頼できるものとして、自身の署名用の鍵を使って公開鍵に署名します。

とはいえ、まだ自身の署名用の鍵を作っていなかったので、まずは下記のコマンドで公開鍵暗号のキーペアを作成します。

  • gpg の鍵を生成するコマンドは3種類ありました。とりあえず、鍵の種類などを指定できるgpg –full-gen-key で作ることにしました。
    • gpg –full-gen-key
      • 鍵の種類、鍵長、有効期限:指定して作成する
      • ユーザIDの構成情報(名前、メールアドレス):指定して作成する
    • gpg –gen-key
      • 鍵の種類、鍵長、有効期限:デフォルトで作成される
      • ユーザIDの構成情報(名前、メールアドレス):指定して作成する
    • gpg –quick-gen-key
      • プロンプトで何も入力しないで作成する
gpg --full-gen-key

続けて、ダウンロードした公開鍵に署名します。

gpg --lsign-key F-Droid

署名後の公開鍵をgpg –list-keys で確認すると、uid の欄が”充分” になっていました。

インポートした公開鍵(充分)

5. 署名の検証

準備が整ったので署名を検証します。

gpg --verify F-Droid.apk.asc
署名の検証(充分)

今回は署名が”充分” となり、メッセージの内容から問題はなかったようです。

あとがき

Android 端末にインストールしようとしているソフトウェアが正規のものであることを今回はパソコンで検証しましたが、これがAndroid 端末上でできたらよいのですが、標準でその機能はなさそうです。
今回インストールするF-Droid を使ってインストールする予定のTermux にGnuPG をインストールすればできそうな気がします。

とりあえず、今回はここまでです。

参考

YubiKeyで静的パスワードを扱う

はじめに

静的パスワードを管理するYubiKey 5Secure Static Password という機能を使ってみたので、使った感想を記録しておきます。

Secure Static Password 機能について

Secure Static Password は、パスワードをYubiKey に登録して、そのパスワードを入力したい位置にカーソルを置いてYubiKey をタッチすると、登録したパスワードが入力されるという機能です。

パスワードは1件しか登録できないので、パスワードマネージャーのように複数のサービスのパスワードを管理できる訳ではないです。

環境

今回、普段使っているパスワードマネージャー1Password のログイン時に入力しているマスターパスワードをYubiKey に登録して使ってみようと思います。

  • OS:macOS Monterey
  • YubiKey Manager (ver.1.2.4)
  • YubiKey 5 NFC
  • 1Password (ver.8.7.0)

使い方

1. YubiKeyに静的パスワードを登録

YubiKey Manager を起動してYubiKey をパソコンに挿入し、メニューの[Applications] > [OTP] をクリックします。

YubiKey Manager >OTP

YubiKey 5 のOTP にはスロットが2つあり、タッチする時間で使い分けができるようになっています。

  • Slot 1:Short Touch(1〜2.5秒)
  • Slot 2:Long Touch(3〜5秒)

今回は空のSlot2 を使うのでLong Touch (Slot2) の[Configure] をクリックします。

YubiKey Manager >OTP > Long Touch(Slot2)

[Static password] を選択して[Next] をクリックします。

YubiKey Manager >OTP > Long Touch(Slot2) >Static Password

任意の文字列を手入力するか、[Generate] をクリックしてランダムな文字列を生成して登録するパスワードを入力し、[Finish] をクリックします。

  • 入力できる文字種は、ModHex 形式USキーボードで使われる文字のどちらかを選択することができます。
  • デフォルトはModHex形式 で、USキーボードで使われる文字に切り替える場合は、”Allow any character” のチェックをONにします。
  • ModHex形式は、全ての言語のキーボードで共通の文字のみ( “c b d e f g h i j k l n r t u v” )で構成され、大文字と小文字の32文字が使えます。
YubiKey Manager >OTP(登録後)

元の画面に戻ると、Long Touch (Slot2) が”This slot is configured” に変わっていました。

  • 登録後に[Configure] をクリックした先の画面で登録したパスワードを確認することはできなかった
  • パスワードは1つしか登録できないので、再度[Configure] から同じ操作で登録すると上書きされる

2. YubiKeyに登録した静的パスワードを使う

1Password のアプリケーションを起動してYubiKey をパソコンに挿入します。

1Password

パスワードの入力欄にカーソルがある状態で、YubiKey を長くタッチすると、登録したパスワードがマスクされた状態で入力され、リーターンキーを押さずにそのままログインすることができました。

間違えて短いタッチをするとSlot1 に設定されているYubico OTP が入力されるので、タッチする長さには気を付ける必要がありそうです。

推奨の使い方

Yubico社が推奨する使い方について

推奨の使い方

Secure Static Password の機能はパスワードの一部にのみ使うことを推奨すると書かれています。
パスワードの前方部は記憶できる文字列後方部はYubiKeyに登録する第三者の推測困難な文字列とするという感じです。

使用例は、以下の通りです。

  1. “Sunny33″を記憶して、”rcltrcihbkkiulnveuenervidliliifv”をYubiKeyに登録し、対象のサービスのパスワードは”Sunny33rcltrcihbkkiulnveuenervidliliifv” で登録する
  2. 対象のサービスにログインする際に、”Sunny33″を手入力し、続けてYubiKeyをタッチして”rcltrcihbkkiulnveuenervidliliifv” を入力する

万が一、YubiKey が盗まれてもパスワードの一部しか漏洩しないので、不正ログインを防ぐことはできそうですが、公開されている使い方なので、記憶できる部分が推測が容易だと簡単に突破されてしまいそうです。

あとがき

  • YubiKey のタッチして文字を入力する仕組み
    • YubiKey はパソコンにUSB 接続するとキーボードとして認識され、タッチするとキー入力として信号がパソコンに送られる
  • ModHex形式 のパスワードについて
    • [Generate] で32桁を生成できるので、ModHex形式で生成した32桁を使うのでもよさそう(32の32乗パターン)
  • USキーボードのパスワードについて
    • 日本語のJISキーボードのパソコンで使うと、USキーボードと配置が違う記号が登録と異なる記号で入力されるかと思ったけれど、登録と同じ状態で入力された
    • 記憶が困難な文字列を登録するのであればUSキーボードで生成するのでもよさそうだけれど、サービス側が許可しない記号が含まれていないようにする必要があるのが若干面倒
  • YubiKey の扱いに注意が必要
    • キーボードで文字入力中にYubiKey に手が触れると、登録されている文字列がプレーンテキスト状態で入力される
    • 無意識にYubiKey に手が触れて登録されている文字列が入力され、入力されたことに気付かないでファイル等を保存するみたいなことも起こりうる
    • デフォルトでShort Touch(Slot1) に設定されているYubiKey OTP は、タッチしてYubiKey から出力される文字列はYubiKey のID(12文字) とAES-128の暗号文(32文字) を結合した44桁の文字列なので漏洩しても大して問題ない
    • Secure Static Password はタッチしただけで生パスワードが漏洩する。推奨の使い方に従ったとしても、生パスワードの一部が漏洩することになる
  • スマホでも使えるか?
    • スマホにUSB接続してキーボードとして認識されれば、パソコンと同じように使える
    • 手持ちのAndroid 端末(Pixel)では使えた
  • 1Password のマスターパスワードで使うことについて
    • Touch ID が使えるMac であれば、Touch ID で1Password にログインできるので、普段はマスターパスワードを入力する機会がない
    • 1Password のサポートページにマスターパスワードは一意でランダムで記憶できるものにしましょうと書かれているが、凡人には困難
    • 第三者に突破されずらいパスワードを扱いやすくすることができるだけでもSecure Static Passwordは使う価値があるのでは?

参考

MacにYubiKey Managerをインストール

YubiKey の設定をするパソコン向けのアプリケーションYubiKey Manager のインストール手順を解説します。
使い方はよく分かっていないので、今回はインストールの解説だけです。

YubiKey Manager アイコン

YubiKey Manager について

YubiKey Manager はYubico社が開発しているもので、ウィンドウ操作で使うGUI ツールと、コマンドライン操作で使うCLI ツール の2種類のツールが提供されています。

Mac へのインストール方法を調べてみると、下記のような感じでした。

Homebrew 以外Homebrew
GUIツールpkgファイルをダウンロードなし
CLIツールpip コマンドを実行あり

GUI ツールにはCLI ツールも含まれているので、今回はGUI ツールをインストールすることにしました。
なお、CLI ツールは単体でのインストールができますが、GUI ツールは単体でのインストールはできなそうでした。

あと、アプリケーションはMac 向け以外に、Linux、Windows 向けも用意されていました。

環境

今回はM1 ProチップのMacBook Pro にインストールしました。
OS はmacOS Monterey(12.2.1)です。
※ インストール後に確認したら、Intel CPU 向けのアプリケーションでした(Rosetta のインストールが必要)

インストール(GUI ツール)

1. パッケージファイルのダウンロード

YubiKey Manager のダウンロードページにある青字の”macOS Download” をクリックして最新版のpkg ファイルをダウンロードします。

YubiKey Manager ダウンロード


5/9時点では 1.2.4 (2021.10.26) 「yubikey-manager-qt-1.2.4-mac.pkg」がダウンロードされました。

古いバージョンをダウンロードできるページもあります(↓)

2. インストール

ダウンロードしたpkgファイルをダブルクリックするとインストーラが起動するので、指示に従ってインストールします。
(一般的な手順でインストールできたので、詳細は省略します)

インストールが完了すると、アプリケーションにYubiKey Manager のアイコンが表示されているはずです。

YubiKey Manager アイコン

3. キー操作の受信設定

システム環境設定を開いてYubiKey Manager によるキーボードの入力監視を許可します。

  1. [セキュリティとプライバシー] をクリック
  2. [プライバシー]タブ > [入力監視] を選択し、[YubiKey Manager.app] のチェックをON

4. GUI ツールの初回起動

YubiKey Manager を起動します。

YubiKey Manager 起動後
YubiKey Manager

もし、前述「3. キー操作の受信設定」をスキップしていると下記のウィンドウが開くので、[“システム環境設定”を開く] をクリックしてシステム環境設定を開いて設定します。

キー操作の受信

5. GUI ツールの動作確認

パソコンのUSB ポートにYubiKey を挿入します。
※ USB-C ポートしかないので変換アダプタをかませました

YubiKey Manager セキュリティキー挿入後

挿入するとYubiKey が認識され、ファームウェアやシリアル番号の情報が表示されました。

6. CLI ツールのPATHを通す

続けて、GUI のパッケージをインストールすると、CLI ツール(ykman)も一緒にインストールされるので、CLI ツールの初期設定について解説しておきます。

GUI のパッケージでインストールすると、CLI ツール(ykman)は/Applications/YubiKey Manager.app/Contents/MacOS にインストールされます。

上記フォルダへのcd やフルパス指定せずにykman で実行できるようにPATH を通します。

~/.zshrc に下記を追記します。

export PATH=$PATH:/Applications/YubiKey\ Manager.app/Contents/MacOS

ターミナルを既に開いている場合は、source ~/.zshrc を実行して設定を反映します。

7. CLI ツールの動作確認

試しにいくつかコマンドを実行してみます。

ykman -v
→ CLIツールのバージョン情報が出力される
YubiKey Manager (ykman) version: 4.0.7

ykman list --serials
→ YubiKeyのシリアル番号が出力される

ykman --device <シリアル番号> info
→ YubiKeyのデバイス情報が出力される
Device type: YubiKey 5 NFC
Serial number: <シリアル番号>
Firmware version: 5.4.3
Form factor: Keychain (USB-A)
Enabled USB interfaces: OTP, FIDO, CCID
NFC transport is enabled.

Applications	USB    	NFC
FIDO2       	Enabled	Enabled
OTP         	Enabled	Enabled
FIDO U2F    	Enabled	Enabled
OATH        	Enabled	Enabled
YubiHSM Auth	Enabled	Enabled
OpenPGP     	Enabled	Enabled
PIV         	Enabled	Enabled

GUI ツールの画面構成

今後の作業ため、GUI ツールの画面構成を貼り付けておきます。
YubiKey 5 NFC の初期状態を後で確認できるようにすることも兼ねて。

Applications

YubiKey Manager > Application
Applications のリスト
YubiKey Manager > Applications > OTP
Applications > OTP
YubiKey Manager > Applications > OTP > Short Touch (Slot 1) *Configure
Applications > OTP > Short Touch (Slot 1) *Configure

FIDO2

YubiKey Manager > FIDO2
FIDO2
YubiKey Manager > FIDO2 > Set PIN
FIDO2 > Set PIN

PIV

YubiKey Manager > PIV
PIV
YubiKey Manager > PIV > Configure PINs
PIV > Configure PINs
YubiKey Manager > PIV > Certificates *Configure Certificates
PIV > Certificates *Configure Certificates

Interfaces

YubiKey Manager > Interfaces
Interfaces

ついでにSecurity Key NFC を挿入

Security Key NFC > Home
Home

Homeは、YubiKey 5 では表示されていたシリアル番号がないです。

Security Key NFC > Applications
Applications

Applications はFIDO2 だけが選択可能です

Security Key NFC > Interfaces
Interfaces

Interfaces はFIDO2 とFIDO U2F の2つだけです

ykman list --serials
→ 何も出力されない

ykman info
→ YubiKeyのデバイス情報が出力される
Device type: Security Key NFC
Firmware version: 5.1.2
Form factor: Keychain (USB-A)
Enabled USB interfaces: FIDO
NFC transport is enabled.

Applications	USB          	NFC
FIDO2       	Enabled      	Enabled
OTP         	Not available	Not available
FIDO U2F    	Enabled      	Enabled
OATH        	Not available	Not available
YubiHSM Auth	Not available	Not available
OpenPGP     	Not available	Not available
PIV         	Not available	Not available

Security Key NFC はシリアル番号が分からなかったけれど、シリアル番号を指定せずにデバイスの情報を確認することはできました。

あとがき

手持ちのMacBook Pro はUSB-C ポートしかないので、YubiKey 5C NFC を買った方がよかったかも。10ドル高いけど。

YubiKey Manager 以外にもYubico社が提供しているツールがあったので、最初見た時は混乱した。整理してみると開発停止になっていたりするので、YubiKey Manager に集約することになったのかもしれない。

他にも探したら何か見つかるかもしれませんが止めておきます。
Yubico Authenticator というクロスプラットフォームに使える感じの認証アプリがちょっと気になる。

参考

Macのssh-agent

Macssh-agentキーチェーンとの連携ができるので、上手く使いこなすと便利そうですが、仕組みがあまりよく分からないで使うのも気持ち悪かったので整理してみました。

はじめに

1. ssh-agentについて

  • OpenSSH の認証エージェント
  • macOS はLeopard から標準インストールされている
  • SSH の公開鍵認証で使う秘密鍵をssh-agent に登録すると、サーバにSSH で接続する際のパスフレーズの手入力を省略できる(ssh-agent が代理でパスコードを入力してくれる)
  • OS をシステム終了するとssh-agent の登録情報が削除されるので、OS を起動する度に再登録が必要

2. キーチェーンの役割について

  • SSH の公開鍵認証で使う秘密鍵のパスコードをキーチェーンに登録すると、登録した秘密鍵をパスコード付きでssh-agent に読み込むことができる
  • キーチェーンには秘密鍵のパスフレーズが保存される(秘密鍵自体は保存されないので、キーチェーンから秘密鍵の復元はできない)

環境について

クライアント側の環境

  • macOS Monterey

サーバ側の環境

  • Ubuntu 20.04.4 LTS

準備

1. SSHの公開鍵認証で使う鍵の作成

今回、鍵の形式はEd25519 で作成します。
作成する際にパスフレーズの入力を求められるので、任意の文字列を指定します。

ssh-keygen -t ed25519
→ パスフレーズを入力する
ls -l ~/.ssh/
→ ~/.ssh/に秘密鍵「id_ed25519」と公開鍵「id_ed25519.pub」が格納されている
  • id_ed25519
    • クライアント側で署名に使う秘密鍵
  • id_ed25519.pub
    • サーバ側で検証に使う公開鍵

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

下記のコマンドで指定したサーバ・ユーザの ~/.ssh/authorized_keys に公開鍵を登録します。

ssh-copy-id -i ~/.ssh/id_ed25519.pub ubuntu@test.example

※ サーバ「test.example」の「/home/ubuntu/.ssh/authorized_keys」に登録されます

3. 接続確認

SSH の公開鍵認証でサーバに接続できるか確認します。

ssh -i ~/.ssh/id_ed25519 ubuntu@test.example
→ パスフレーズを入力して接続に成功
exit

ちなみに、オプション-i で秘密鍵を指定しなくても同じ様に接続できました。

ここまでは、ssh-agent を使わないSSH の公開鍵認証です。

ssh-agentを使う

ssh-agent に秘密鍵を登録してSSH の公開鍵認証でサーバに接続します。

1. 秘密鍵をssh-agentに登録

ssh-add ~/.ssh/id_ed25519
→ パスフレーズを入力して登録する

ちなみに、秘密鍵を指定しなくても同じ様に登録できました。
その場合、~/.ssh/ に複数の秘密鍵のファイルがあると、全ての秘密鍵のパスフレーズの入力を求められ登録しようとします。

2. 秘密鍵がssh-agentに登録されていることを確認

ssh-add -l
→ 登録されている秘密鍵に対応する公開鍵のフィンガープリントが表示される

3. 接続確認

パスフレーズを入力しないでサーバに接続できるか確認します。

ssh -i ~/.ssh/id_ed25519 ubuntu@test.example
→ パスフレーズの入力を求められずに接続に成功
exit

パスフレーズを入力しないで接続できたということは、ssh-agent が代理でパスフレーズを入力してくれたということになります。

続けて、オプション-i で秘密鍵を指定しないで接続できるか確認します。

ssh ubuntu@test.example
→ パスフレーズの入力を求められずに接続に成功
exit

こちらも同じ様にパスフレーズを入力しないで接続できました。

以降、パソコンのシステムを終了するまでパスフレーズの入力が求められなくなるので、便利ではありますがパスフレーズを知らない第三者もこのコマンドを入力するだけでサーバにSSH 接続できてしまうので、離席する際はパソコンをロックする等の運用上の配慮が必要になります。

キーチェーンを使う

秘密鍵のパスフレーズをキーチェーンに登録し、登録したキーチェーンのパスフレーズをssh-agent に読み込んでSSH の公開鍵認証でサーバに接続します。

1. 秘密鍵のパスフレーズをキーチェーンに登録

ssh-add --apple-use-keychain ~/.ssh/id_ed25519
→ パスフレーズを入力して登録する
  • オプション-K非推奨となり、替わりに–apple-use-keychain が用意されていました
  • 引数の秘密鍵の指定を省略すると、~/.ssh/ に格納されている全ての秘密鍵の登録を試みます(各鍵のパスフレーズを聞かれるので、入力して正しければ登録されます)
  • 上記のコマンドを実行すると、ssh-agent にも秘密鍵が登録されました

2. キーチェーンに登録されていることを確認

キーチェーンアクセスで秘密鍵のパスフレーズがキーチェーンに登録されていることを確認します。

キーチェーンアクセスを開き、右上の検索窓に”SSH” と入力して一覧の表示を絞り込むと、登録した秘密鍵が表示されます。

キーチェーンアクセス(一覧)
キーチェーンアクセス(一覧)

一覧の秘密鍵の行をクリックして詳細画面を開き、[パスワードを表示] のチェックをONにすると秘密鍵のパスフレーズが表示されます。

キーチェーンアクセス(詳細)
キーチェーンアクセス(詳細)

3. ssh-agentに登録されている秘密鍵を削除

キーチェーンの秘密鍵をssh-agent に読み込むので、前述「1. 秘密鍵をssh-agentに登録」でssh-agent に登録した秘密鍵を一旦削除します。

ssh-add -D

4. キーチェーンの秘密鍵をssh-agentに読み込む

ssh-add --apple-load-keychain ~/.ssh/id_ed25519
  • オプション-A非推奨となり、替わりに–apple-load-keychain が用意されていました
  • 引数の秘密鍵の指定を省略すると、キーチェーンの全ての秘密鍵がssh-agent に読み込まれます(パスフレーズの入力が求められずに読み込まれます)

5. 秘密鍵がssh-agentに登録されていることを確認

ssh-add -l
→ 登録されている秘密鍵に対応する公開鍵のフィンガープリントが表示される

6. 接続確認

パスフレーズを入力しないでサーバに接続できるか確認します。

ssh ubuntu@test.example
→ パスフレーズの入力を求められずに接続に成功
exit

設定

~/.ssh/config

任意でssh-agent に関係する下記のオプションを指定することができます。

Host *
 AddKeysToAgent yes
 UseKeyChain yes
  • AddKeysToAgent
    • サーバにSSHで接続した際に、秘密鍵をssh-agentに登録する設定
    • yes:登録する、no:登録しない(デフォルト)、他にconfirmとaskが指定できる
    • yesにすると、ssh-add を実行する必要がなくなる
  • UseKeyChain
    • サーバにSSHで接続した際に、秘密鍵をキーチェーンに登録する設定
    • yes:登録する、no:登録しない(デフォルト)
    • yesにすると、ssh-add –apple-use-keychain を実行する必要がなくなる

どう使うか

秘密鍵のパスフレーズをキーチェーンで管理して使う

以下の手順でssh-agent を使う

  1. 公開鍵認証で使う鍵を作ったタイミングで秘密鍵をキーチェーンに登録する
    • ssh-add –apple-use-keychain ~/.ssh/id_ed25519パスコードを入力
  2. SSH でサーバに接続する前にキーチェーンの秘密鍵をssh-agent に登録する
    • ssh-add –apple-load-keychain
  3. SSH でサーバに接続する
    • ssh ubuntu@test.example

OS を起動する度に2.を実行する必要がありますが、普段はパスコードの手入力が必要なくなるというのが利点としてあります。
非推奨になったオプション-A に比べると–apple-load-keychain が覚えづらいのが残念な感じです。
この使い方であれば、config の設定は必要なさそうです。

秘密鍵のパスフレーズをキーチェーンで管理しないで使う(configの設定なし)

以下の手順でssh-agent を使う

  1. SSH でサーバに接続する前に秘密鍵をssh-agent に登録する
    • ssh-addパスコードを入力
  2. SSHでサーバに接続する
    • ssh ubuntu@test.example

OS を起動する度にパスコードの手入力が必要なので、パスコードの運用が雑になりそうです。
普段からssh-add コマンドを使うのでssh-agent を意識するシンプルな使い方という感じです。

秘密鍵のパスフレーズをキーチェーンで管理しないで使う(configの設定あり)

以下の手順でssh-agent を使う

  1. config にSSH 接続の際に秘密鍵をssh-agent に登録する設定をする
    • AddKeysToAgent yes
  2. SSH でサーバに接続する(OS 起動後の初回)
    • ssh ubuntu@test.exampleパスコードを入力
  3. SSH でサーバに接続する(2回目以降)
    • ssh ubuntu@test.example

OS を起動する度にパスコードの入力が必要なので、パスコードの運用が雑になりそうです。
普段は ssh コマンドだけを使えばよくなるので、ssh-agent を意識しなくなりそうです。

あとがき

Macssh-agentについて整理できたようで整理できていない感じですが、どう使うかの選択肢は整理できたと思います。
最後に感想とメモのようなものを書き残しておきます。

  • ssh-add のキーチェーンを扱うオプションについて
    • macOS Monterey で-K と-A が非推奨になったらしい
    • 新しい–apple-use-keychain と–apple-load-keychain 覚えづらい
  • config のUseKeyChain について
    • 秘密鍵は基本的に意識して扱いたいので、無意識で永続的に保存される仕組みは使いたくない(sshコマンドの実行でキーチェーンに登録したくない)
  • キーチェーンに登録するのは秘密鍵の保存場所とパスコードの情報
    • ~/.ssh/ の秘密鍵を削除するとキーチェーンに登録されている情報はゴミになる
    • キーチェーンから秘密鍵を復元できない
  • ssh-agent を使わないという選択
    • 離席する際のパソコンのロックが徹底できないのであれば使わない方がよい
    • ssh-agent はあくまでも利便性を向上させるツールなので無理して使うことはない
  • 秘密鍵のパスコードを絶対第三者に使われたくない
    • パスコードをキーチェーンで管理すれば、ウェブサイト向けのパスワードマネージャー(1Passwordなど)のような感覚でパスコードをセキュアに扱うことができる
  • ssh-agent のプロセス起動
    • OS を起動した状態ではssh-agent が起動していない
    • ssh コマンドやssh-add コマンドを実行するとssh-agent が起動する(ps aux | grep ssh-agent で確認)
  • シェル起動時にssh-agent に登録する
    • キーチェーンに登録して、~/.zshrc にssh-add –apple-load-keychain を記述する
    • ssh コマンドでパスフレーズの入力を求められずに接続できる
    • 普段ssh-agent とパスフレーズを全く意識する必要がなくなり利便性はmax

参考

Apple SiliconでAkai Pro MPK mini MK3

Apple Silicon のMac を入手して何か新しいことしたくなり、勢いでAkai ProfessionalMPK mini MK3 というMIDIキーボードを購入しました。

ネットで調べると初期セットアップの手順が分かりづらく手こずったという意見がよくみられたので、ここではM1 Mac でMPK mini MK3 を使い始めるまでの初期セットアップの手順を整理したいと思います。

使ったMac はM1 ProチップMacBook Pro で、OSはmacOS MontereyRosetta 2 はインストール済みです。

MPK mini MK3

Apple Silicon のMac で使うことについて

M1 Mac正式にはサポートしていないようでしたが、動いたと書いているブログや通販サイトのコメントがあったので、多分大丈夫なんだろうという軽い気持ちで購入を決めました。

結論としては、なんとか動いている感じです。
なんとかというのは、Garage Band とMPK mini MPK に付属するMPC Beats などのソフトウェアが、初心者向けDAWの使い方のようなサイトを参考に一週間ほど操作していて、普通に使うことができたという程度の確認しかしていないからです。

免責としてお伝えしておく必要があると思うのですが、あくまでも初心者が使ってみたら動いた、という程度のものでしかないので、きちんとした動作検証を行なっている訳ではないという点はご理解をお願いいたします

初期セットアップ

商品にクイックスタートガイドソフトウェアダウンロードカードが同梱されていましたが、そこには「akaipro.com でアカウントを作って、製品を登録すれば付属するソフトウェアをダウンロードできる」という程度のことしか書いてありませんでした。

akai-pro.jpMPK mini MK3 のページからダウンロードできるセットアップガイドMPC Beats クイックスタートガイドのPDFの資料に日本語で詳しい手順が書かれていたので、こちらを参考にしました。

  • MPK mini MK3 (akai-pro.jp) – inMusic Japan (日本語)

まずは、akaipro.com のアカウントの作成から始めます。

1. akaipro.com のアカウント作成

akaipro.com のサイトにアクセスして、右上の[ACCOUNT] をクリックすると下記のページが表示されます。

akaipro.com
akaipro.com

[CREATE ACCOUNT] ボタンをクリックします。

create profile 1

氏名、メールアドレス、誕生日、パスワード、国を入力して下の[NEXT STEP] ボタンをクリックします。

create profile 2

「Akai ProはinMusic社のブランドの一つです。興味あるブランドがあれば選んでください」と書かれているので、興味があるブランドを選択して、プライバシーポリシーと利用規約に同意のチェックをONにして[CREATE ACCOUNT] ボタンをクリックします。

すると、akaipro.com からメールが届くので届くので、メール本文の[Confirm Your Account] ボタンをクリックするとアカウントの作成が完了します。

2. akaipro.com のアカウントに製品を登録

akaipro.com のサイトで右上の[ACCOUNT] から、登録したメールアドレスとパスワードを入力してログインします。

register new product 1
※イメージは製品を登録後の状態です

メニューの[MY HOME] または[MY PRODUCTS] にある[REGISTER NEW PRODUCT] ボタンをクリックします。

register new product 2

購入した製品「MPK mini MK3」の背面に記載されているシリアル番号を入力し、[CHECK SERIAL] ボタンをクリックすると製品の登録が完了します。

3. MPK mini Software Manager のインストール

akaipro.com のサイトにログインした状態で、メニューの[MY PRODUCTS] に表示されているMPK mini mk3 の”DOWNLOAD (MAC)” のリンクをクリックして、MPK mini Software Manager をダウンロードします。

端末上にZip形式のファイルが保存されるので、展開するとMPK mini Software Manager というアプリケーションファイルが展開されるので、このファイルをアプリケーションにドラッグしてインストールします。

4. MPK mini Software Manager の初回起動

MPK mini Software Manager を起動します。

MPK mini Software Manager
MPK mini Software Manager

[Let’s Go!] ボタンをクリックします。

MPK mini Software Manager

MPK mini MK3MacUSBケーブルで接続して[NEXT] ボタンをクリックします。

MPK mini Software Manager

Instruments でインストールする音源を選択して[NEXT] をクリックします。

MPK mini Software Manager

Apps でDAWソフトのMPC Beats を選択して[NEXT] をクリックします。

MPK mini Software Manager

MPC Sound Packs でインストールするサウンドパックを選択して[FINISH] をクリックすると、選択したソフトウェアのダウンロードが始まります。

5. iLok のアカウント作成

MPK mini Software Manager でソフトウェアのダウンロードが始まると、下記のウィンドウが表示されます。

MPK mini Software Manager

[Create iLok account] ボタンをクリックすると、ブラウザに下記のiLok のアカウントを登録するページが表示されます。

iLok アカウント登録

ユーザID、氏名、メールアドレス、パスワード、生年月日、秘密の質問と回答を入力し、プライバシーポリシーと利用規約に同意のチェックをONにして[CREATE ACCOUNT] ボタンをクリックします。

※ プライバシーポリシーのチェックは、上はアカウントとアップデートの情報の通知について、下はソフトウェアベンダーからの特別なオファーの通知についてです。(おそらく両方とも必須ではない)

すると、iLok からメールが届くので、メール本文のilok.com のURLのリンクをクリックするとアカウントの作成が完了します。

6. iLok License Manager のインストール

iLok から届いたメールのURL のリンクをクリックすると、ブラウザにiLok のサイトのログインページが表示されます。

ilok.com
ilok.com

iLok のアカウント作成時に登録したユーザIDとパスワードを入力してログインすると、アカウントが有効化されたというページが表示されます。

ilok.com

ここでの操作を記録し忘れたので定かではないですが、下記のiLok のトップページの左側「iLok License Manager」の”macOS” のリンクをクリックして、iLok License Manager をダウンロードします。

端末上にZip形式のファイルが保存されるので、展開するとiLok License Manager のインストーラがディスクイメージファイルで展開されるので、このファイルを起動してウィザードに従ってiLok License Manager をインストールします。

7. iLok License Manager の初回起動

iLok License Manager を起動します。

iLok License Manager
iLok License Manager

左上の[Sign In] ボタンをクリックします。

iLok License Manager

iLok アカウントのユーザIDとパスワードを入力してログインします

iLok License Manager

この時点では、左上に”0 Licenses”、左のLocal に”0 Activations”、上のAll Licenses 等は”0″ の状態です。

8. Hybrid 3 など音源のインストール

MPK mini Software Manager を起動します。

MPK mini Software Manager
MPK mini Software Manager

Hybrid 3 の”Get Activation Code” という青い字をクリックすると、下記のウィンドウが表示されます。

MPK mini Software Manager - hybrid 3

ウィンドウには下記のようなことが記載されています。

あなたのアクティベーションコードは、Akaiアカウントで利用できる状態になっています。以下の手順でアクティベーションコードを入手してください。
1. iLok アカウントを作成
2. Akai Pro アカウントにログインする
3. ソフトウェア 登録ページを表示する
4. ソフトウェア のアクティベーションコードをコピーする
5. アプリを起動してアクティベーションコードを入力する」

1. iLokアカウントを作成は完了しているので、2.以降をやります。
[Open My Akai Acccount] ボタンをクリックすると、ブラウザが開きakaipro.com のサイトが表示されるので、ログインしてメニューの[MY PRODUCTS] をクリックします。

MPK mini mk3 の[SEE DETAILS, DOWNLOADS, AND OFFERS] ボタンをクリックすると、下記のように詳細が表示されます。

akaipro.com
akaipro.com

ここで、右下の[GET ACTIVATION CODE] ボタンをクリックすると、”Serial:” に続けてハイフン区切りの長い数字の羅列が表示されます。

この数字がアクティベーションコードで、後で使うことになります。

MPK mini Software Manager に戻り、Hybrid 3 の[Install] ボタンをクリックすると、下記のウィンドウが表示されます。

MPK mini Software Manager - hybrid 3

ウィンドウには下記のようなことが記載されています。

ソフトウェアを使うにはアクティベーションコードが必要です。下記の手順でインストールとアクティベーションコードを取得してください。
Step 1. 今すぐインストール
Step 2. アクティベーションコードを取得

[Step 1. Install Now] をクリックするとHybrid 3 のインストーラが起動するので、ウィザードに従ってHybrid 3 をインストールします。

インストールが完了したら、上記のウィンドウを閉じます。

Hybrid 3

MPK mini Software Manager に戻ると、ボタンが[Open] に変わっているので、ボタンをクリックしてHybrid 3 を起動します。

Hybrid 3
Hybrid 3

右下の[Activate] ボタンをクリックします。

Hybrid 3

akaipro.com のサイトに表示されていたアクティベーションコードをコピーして貼り付け、[Next] ボタンをクリックします。

Hybrid 3

メールアドレスを入力し、”Register with my existing iLok.com account” のチェックをONにして[Continue] ボタンをクリックします。

Hybrid 3

iLok アカウントのユーザIDとパスワードを入力して[Next] ボタンをクリックします。

Hybrid 3

アクティベーションコードを有効にする場所(端末)を選択して[Next] ボタンをクリックするとHybrid 3 の有効化が完了し、下記のウィンドウが表示されます。

Hybrid 3

[Continue] ボタンをクリックすると、Hybrid 3 が起動します。

Hybrid 3

この後、残り2つの音源Mini GrandVelvet)をHybrid 3 と同じ手順でインストールします。

Hybrid 3 のインストール時にアクティベーションコードの有効化をしていたからだと思いますが、この2つのインストール時にはアクティベーションコードを有効にする手順がありませんでした。

なお、音源の有効化が完了すると、iLok のサイトiLok License Manager にログインすると、有効化した音源が一覧に表示されるようになっていました。

9. MPC Beats のインストール

MPK mini Software Manager MPC Beats の[Install] ボタンをクリックするとMPC Beats のインストーラが起動するので、ウィザードに従ってMPC Beats をインストールします

MPK mini Software Manager に戻ると、ボタンが[Open] に変わっているので、ボタンをクリックしてMPC Beats を起動します。

MPC Beats
MPC Beats

MPK mini MK3MacUSBケーブルで接続して[Next] ボタンをクリックします。

MPC Beats

ドロップダウンリストで”Akai MPK mini 3” を選択して、[Next] ボタンをクリックします。

MPC Beats

Simple” か”Advanced” を選択して[Next] ボタンをクリックすると、MPC Beats のプロジェクトを選択するウィンドウが表示されます。

※ 初心者なので”Simple” を選択しました。
※ 後で、メニューの[View] > [Workspace] で変更できます。

MPC Beats
MPC Beats

以上で、初期セットアップは完了となります。

あとがき

MPK mini MK3 にした経緯

最近、音楽は専ら聴くことしかしていなかったので、値段が手頃である程度面白そうなものを探していて、ちょうど良さそうだったのがこのAkai ProfessionalMPK mini MK3 でした。

MPK mini Play MK3 という見た目がほぼ同じでスピーカーが付いてパソコンに接続せずに使うことができるものもあったので悩んだのですが、家でしか使わないのと比較すると安かったのでMPK mini MK3 にすることにしました。

MPK mini Play MK3

初期セットアップの手順についての感想

基本的に、アカウント登録するウェブサイトとソフトウェアは英語でしたが、冒頭で紹介したPDFの資料に日本語で詳しい手順が書かれていたので、言語の壁はあまり感じなかったです。

akaipro.comアカウントとilokアカウントの2つを使い分ける必要があるのと、音源の3つのソフトウェアをiLok License Manager というソフトウェアを使って有効にする方法が感覚的に分かりづらかったので少し混乱しましたが、行き詰まるということはなかったです。

Apple Silicon (M1) Mac を使ったことについては、初期セットアップ完了後にインストールしたソフトウェアのプロパティを確認するとすべて”Intel” だったので、現状はRosetta 2 が必須ということになります。

これからのこと

直近では、MPK mini Editor というMPK mini MK3 のパッドやノブに機能を割り当てるツールをまだ使っていないので、これを使ってみたいと思っています。

Garage Band やMPC Beats のDAWソフトの使い方を覚えるのはその後です。道のりは長そうなのでのんびりやっていければと思います。

参考

MPK mini MK3 のカラーバリエーション

Apple SiliconでHomebrew

Apple Silicon のMac を入手したのでHomebrew を使えるようにします。
Mac は、M1 ProチップのMacBook Pro です。

Homebrew とは

Homebrew

macOS 向けのパッケージ管理ソフトです。
いわゆる、Mac でソフトウェアのインストールやアンインストールをCLI でできるようにするツールです。

Homebrew のシステム要件

Homebrew の公式サイトに下記の記載がありました。

macOS Requirements
macOS Requirements

日本語にすると、下記のような感じです。

  • 64ビット Intel CPUまたは Apple Silicon CPU
  • macOS Catalina (10.15) 以上
  • Command Line Tools for Xcode または Xcode
  • Bourne-again shell (bash) ※インストールで使う

1つ目のハードウェア要件と2つ目のOSの要件は満たしているのでOK。
3つ目は、事前にインストールが必要で、
4つ目は、ワンライナーのインストールコマンドの実行で必要

ということで、まずは4つ目が簡単にできるので、bash が使えるかを確認します。

bash の確認

bash が使えるか確認します。

cat /etc/shells | grep bash
> /bin/bash
which bash
> /bin/bash

bashはインストールされていてパスも通っているので問題なさそうです。

ついでにデフォルトシェルが何か確認しておきます。

echo $SHELL
> /bin/zsh

bashではなくzshでした。
インストールコマンドを見てみると、bashをパス指定(/bin/bash)で実行しているので、デフォルトシェルではなくても問題ないです。

Command Line Tools for Xcode または Xcode について

どちらか一方をインストールすればよいみたいですが、実際にはXcode をインストールした場合も、Command Line Tools for Xcode(以下、CLT) のインストールは必要でした。

Xcode にCLT が内包されていると書いてるブログもあったのですが、実際にはXcode をインストールすると自動的にCLTもインストールされるという訳ではなかったです。

今回、Xcode だけをインストールした状態でHomebrew のインストールコマンドを実行したのですが、インストールの最初の方でCLT をインストールするか質問され、拒否するとインストールが中断されてしまいました。

質問で拒否しなければ、CLT のインストールが始まりHomebrew のインストールが継続して行われますが、事前にインストールしておけば質問自体がされないのではないかと思われます。

Command Line Tools for Xcode と Xcode のサイズ比較

何も考えずに大は小を兼ねる程度の感覚でXcode をインストールするというのはちょっと雑なので、それぞれのサイズを比較してみました。

Apple Developer のサイトでサイズが確認できました。

Xcode
Xcode
Command Line Tools for Xcode
Command Line Tolls for Xcode
  • Xcode (10.1 GB
  • Command Line Tools for Xcode (564.48 MB

ファイルの形式が違うので単純に比較できませんが、随分と差があります。両方ともサイズが圧縮される形式ですが、Xcode はCLT の18倍くらいあります。

ちなみに、Xcode のダウンロードしたファイル Xcode_13.2.1.xip から展開されたアプリケーションファイルは32GB ありました。

Xcode は使わないし端末のストレージ容量を無駄に使いたくない、というのであれば、CLT のみインストールした方がよいかもしれません。

Xcode のインストール

今回、Xcode をインストールしてから、Homebrew をインストールすることにしました。

※ Xcode をインストールしない場合は、この章はスキップして、次の「Command Line Tools for Xcodeのインストール」からになります。

Xcode のインストール方法

調べてみると、下記の2つの方法がありました。

  • Apple Developer でファイルをダウンロードしてインストール
  • App Store から直接インストール

後者は、自動アップデートを個別に制御できないようなので、前者の方法でインストールすることにしました。
あと、後者はインストールに時間がかかるや途中で止まったという評価が幾つかあったので、ちょっと不安になったというのもあります。実際やってみないとなんとも言えませんが。。

以下、Apple Developer でファイルをダウンロードしてインストールする手順を記載します。

Apple Developer でファイルをダウンロード

Apple Developer のダウンロードページにアクセスし、自身のApple ID でログインします。

検索窓で”Xcode” と入力して抽出された中から最新のXcode を探します。
古いバージョンやBeta版もあるので注意

Xcode
Xcode

ダウンロードするXcode が見つかったら、青字の[↓ Xcode 13.2.1.xip]をクリックしてxipファイルをダウンロードします。

ダウンロードしたファイルを展開してインストール

ダウンロードしたファイルはxip 形式のアーカイブファイルなので、アーカイブユーティリティを使って展開します。

Xcodeダウンロードファイル

xipファイルと同じフォルダにアプリケーションファイルが展開されるので、アプリケーションにドラッグ&ドロップしてインストールします。

これでXcode のインストールは完了です。

Command Line Tools for Xcodeのインストール

Xcode をインストールしない場合はこちらの「Command Line Tools for Xcodeのインストール」を行います。

ただ、このタイミングでCTL をインストールしなくても、次の「Homebrewのインストール」の途中でインストールできるので、この章もスキップしてもよいかもしれません。

今回、私はXcode をインストールした後にHomebrew をインストールしたので、ここの手順は行わなかったです。

Command Line Tools for Xcode のインストール方法

調べてみると、下記の2つの方法がありました。

  • Apple Developer でファイルをダウンロードしてインストール
  • ターミナルで以下のコマンドを実行してインストール
xcode-select --install

前者は、ダウンロードするファイルがdmg ファイルなので、ダブルクリックで普通にインストールできそうなので、説明は省略します。

なお、Xcode を起動してメニューの[XCode] > [Open Developer Tool] > [More Developer Tools…] をクリックすると、ブラウザが起動してApple Developers のダウンロードページが開きました。
Xcode の画面操作でCLT をインストールできる訳ではなかったです。

Homebrew のインストール

Homebrew のウェブサイトのトップページにアクセスします。

トップページにワンライナーのインストール用のコマンドが掲載されているので、コマンドをコピーします。

Homebrewインストールコマンド
インストール用のコマンド
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

コマンドのテキストを参考のために掲載しましたが、実際にインストールを行う際は、こちらではなくウェブサイトに掲載されているコマンドをコピーしてください。

ターミナルを起動して、コピーしたコマンドをペーストしてコマンドを実行します。
コマンドを実行すると、以下のように処理が進められます。

1. パスワードの入力

==> Checking for `sudo` access (which may request your password)...
Password:

パスワードの入力が求められるので、端末のログインパスワードを入力します。
Apple IDのパスワードではない

2. Command Line Tools for Xcodeのインストール

==> The Xcode Command Line Tools will be installed.

Press RETURN to continue or any other key to abort:

CLT をインストールするか、インストールを中断するか、選択が求められので選択します。
※ 前述「Command Line Tools for Xcodeのインストール」でCLT をインストールしていた場合、この確認は求められないと思われます。

  • Enterキー
    • CLT をインストールする(Homebrew のインストールを継続する)
  • Enterキー以外
    • Homebrew のインストールを中断する

Enterキーを押下すると、CLT のダウンロードが始まり、そのままCLT とHomebrew のインストールが続けて行われます。

Homebrew のインストールが完了すると、下記のようなメッセージが表示されます。

ターミナル(Installation successful)
ターミナル(Installation successful)

3. Homebrew フォルダにパスを通す

インストール完了のメッセージに、/opt/homebrew/bin にパスが通っていないので指定したコマンドを実行するようにと記載があります。
言われた通り、指定されたコマンドをターミナルで実行します。
※ コマンドの”xxx” の箇所はユーザ名です

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/xxx/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

上記のコマンドを実行後、以下のコマンドでbrew コマンドにパスが通っているか確認します。

which brew
> /opt/homebrew/bin/brew

brew コマンドのパスが通っていました。

4. Homebrewの動作確認

Homebrew が問題なく動作するかを確認するコマンドを実行します。

brew doctor
> Your system is ready to brew.

正常に動作していることが確認できたので、これでHomebrew のインストールは完了です。

Homebrew を使う

Homebrew を使って1Password をインストール

Homebrew のスポンサーである、1Password をインストールしてみます。

Homebrew のウェブサイトのパッケージを検索するページがあります。
※ トップページの検索窓でも検索できますが、パッケージ以外の情報も検出されるので、ここではパッケージのページで説明します。

パッケージの検索画面
パッケージの検索画面

検索窓に薄い色で”Search Homebrew Formulae” と表示されています。
“Formulae” はHomebrew が扱うパッケージのことです。

今回、1Password を探すので、”1password” と入力します。

1password検索

すると、入力したキーワードで検出されたパッケージが表示されるので、今回インストールする1password を選択すると、下記の1Password のパッケージのページが表示されます。

1Passwordのページ
1Passwordのページ
brew install --cask 1password

1Password をインストールするコマンドが記載されているので、コマンドをコピーしてターミナルに貼り付けてコマンドを実行します。

1Password のインストールが完了すると、下記のようなメッセージが表示されます。

ターミナル(successfully installed)
ターミナル(successfully installed)

インストール完了メッセージに、/Application/1Password 7.app にインストールしたと表示されています。

Finder でアプリケーションフォルダを見ると、1Password のアイコンがありました。

1Passwordアイコン
Finder > アプリケーション

GUI アプリのインストールが、1つのコマンドをコピー&ペーストするだけでできるようになりました。
インストール完了です。

その他、参考情報

とりあえず、よく使いそうなコマンドを掲載しておきます。

# Homebrewの動作確認
brew doctor

# Homebrewのバージョンを表示
brew --version
brew --v

# Homebrewのシステム構成を表示
brew config

# インストール済みパッケージ一覧の表示
brew list
brew ls

# パッケージの検索
brew search <keyword>
brew -S <keyword>

# パッケージのインストール
brew install <package-name>

# パッケージのアンインストール
brew uninstall <package-name>

# Homebrew本体のアップデート、インストール可能なパッケージ一覧の更新
brew update

# アップデート可能なパッケージをアップグレード
brew upgrade <package-name>

# インストールの統計情報を表示
brew info

# インストールしたパッケージの統計情報を表示
brew info <package-name>

# サブコマンドの表示
brew

# コマンドの一覧を表示
brew commands

# コマンドのヘルプを表示
brew help <command>

あとがき

GUI のソフトウェアのインストールが、ファイルをダウンロードして、ダウンロードしたファイルを開いてアイコンをアプリケーションフォルダにドラッグ&ドロップする、という方法より断然楽になりました。

ソフトウェアのインストールは基本的にHomebrew を使う、というように一元管理すれば、OSをクリアインストールして環境を再構築するのもそれほど苦にはならなそうです。

Mac を買ったら一番最初にインストールしておきたいソフトウェアです。

参考