@kyanny's blog

My thoughts, my life. Views/opinions are my own.

say コマンドで英単語を読み上げる Alfred Workflow

Alfred Workflow を作ってみた。

github.com

Alfred から Terminal で任意のコマンドを実行できるし、 iTerm2 に変更もできるが、 iTerm2 で新しいタブを開いてコマンドを実行するので、不要なタブが残ってしまう。コマンド終了を待ってからタブを閉じるのはちょっと難しそうだったのでどうしたものかと思ったが、 Workflow の Terminal Commands と Run Script の違いについての話題を見つけて、 Run Script ならこの問題を回避できそうだったので Workflow を作ってみた次第。

Workflow はどういうものか全く解ってなかったが、要は Automator のようなもので、新規作成のためのテンプレートがいろいろ用意されているので、適当に選んだものをいじっているうちに雰囲気で作れた。

PagerDuty の API リファレンスがよくできている

https://developer.pagerduty.com/api-reference/

ブラウザ上で各種パラメータを変えながらリクエストを発行できる。試行錯誤しやすくて便利。結果の表示形式も pretty print JSON やネストされた Object を開閉できるやつ(Chrome console みたいな感じ)などから選べて使い勝手が良い。

自分の API キーを使うこともできる。画面左上の "Test API Token" のところに自分の API キーを入れれば良い。 API キーの発行方法は Generating API Keys 参照。自分の API キーを使うと所属してる組織のデータにアクセスできるのでいろいろ試しやすい。

f:id:a666666:20210305014832p:plain

自動コード生成も意外に便利だった。自分で API を書く場合、仕様も使い方も頭に入っているのでわざわざ OpenAPI のようなドキュメントからコード生成するメリットがピンとこなかったが、 API のユーザーの立場だと、動作するコードをワンクリックで手に入れられるのは便利だ。それを出発点にして開発し始めると、 boilerplate なコードを書く手間と時間が節約できる。

このページ、 OpenAPI (Swagger UI) には見えないし、 Postman の UI ともちょっと違う。 Postman の OEM っぽい気もするけど、もし自前で作ってるとしたら相当しっかり作ってあるなあと思う。

黄金のアデーレ 名画の帰還

家族の肖像画を取り戻すために祖国に訴訟を起こす老婦人と若手弁護士の話。なかなか良かった。

老婦人がオーストリアの貴族の家柄の人で、いかにも貴族らしい威風堂々とした立ち居振る舞いが清々しかった。

弁護士はベン・アフレックに似てるなあと思いながら観てたけど全然違う役者だった。

黄金のアデーレ 名画の帰還(字幕版)

黄金のアデーレ 名画の帰還(字幕版)

  • 発売日: 2016/05/27
  • メディア: Prime Video

SSH CA

SSH サーバへの接続を公開鍵認証ではなく証明書認証で行うこと。

↓作業手順はこのドキュメントがわかりやすい。

support.conoha.jp

手順

sudo ssh-keygen -f /etc/ssh/ca
sudo ssh-keygen -s /etc/ssh/ca \
  -I "$(whoami)@$(hostname --fqdn) user key" \
  -n "$(whoami)" \
  -V -5m:+3650d \
  ~/.ssh/id_rsa.pub

IP アドレス制限を設ける場合

sudo ssh-keygen -s /etc/ssh/ca \
  -I "$(whoami)@$(hostname --fqdn) user key" \
  -n "$(whoami)" \
  -V -5m:+3650d \
  -O source-address=$(hostname -I | tr ' ' ',') \
  ~/.ssh/id_rsa.pub
echo "AuthorizedPrincipalsFile %h/.ssh/authorized_principals" | sudo tee -a /etc/ssh/sshd_config
echo "TrustedUserCAKeys /etc/ssh/ca.pub" | sudo tee -a /etc/ssh/sshd_config
echo $(whoami) > ~/.ssh/authorized_principals

sudo systemctl restart ssh.service

ポイント

  • CA の鍵ペアを作る
  • CA の秘密鍵でクライアントの公開鍵に署名して証明書を作る
  • クライアントが証明書を利用して SSH する際は ssh -i秘密鍵を指定する
    • 証明書を秘密鍵と同じディレクトリに置くこと
azureuser@ssh-client:~$ ll ~/.ssh/
total 28
drwx------ 2 azureuser azureuser 4096 Mar  1 15:04 ./
drwxr-xr-x 5 azureuser azureuser 4096 Mar  1 15:04 ../
-rw------- 1 azureuser azureuser  553 Mar  1 14:52 authorized_keys
-rw------- 1 azureuser azureuser 1679 Mar  1 14:55 id_rsa
-rw-r--r-- 1 azureuser azureuser 1503 Mar  1 15:00 id_rsa-cert.pub
-rw-r--r-- 1 azureuser azureuser  402 Mar  1 14:55 id_rsa.pub
-rw-r--r-- 1 azureuser azureuser  222 Mar  1 15:04 known_hosts

↑こういうファイル配置なら -i オプションなしで良い。

$ ssh azureuser@192.168.x.x

参考リンク