SSH-CA認証でサーバ証明書内のホスト名に大文字が含まれると嵌まる
known_hosts
に@cert-authority
で登録したホスト名からホスト認証を行う際に全て小文字でチェックしているらしく,
サーバ証明書内のホスト名に大文字が含まれるとコケる. /bin/hostname
等を使う場合は注意が必要. 調整が必要なのはサーバ証明書内のホスト名だけで, known_hosts
等は気にしなくていいようだ.
環境
ito@ito-VirtualBox:~$ ssh -V OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6, OpenSSL 1.0.1f 6 Jan 2014
実行してみる
NG
ito@ito-VirtualBox:~$ sudo ssh-keygen -s ca/ca.key -I ca-test-server -h -n ito-VirtualBox /etc/ssh/ssh_host_rsa_key.pub Signed host key /etc/ssh/ssh_host_rsa_key-cert.pub: id "ca-test-server" serial 0 for ito-VirtualBox valid forever ito@ito-VirtualBox:~$ ssh-keygen -L -f /etc/ssh/ssh_host_rsa_key-cert.pub /etc/ssh/ssh_host_rsa_key-cert.pub: Type: ssh-rsa-cert-v01@openssh.com host certificate Public key: RSA-CERT 8f:3e:82:c9:1f:5e:90:bd:46:09:0d:1d:7c:36:f5:73 Signing CA: RSA 2f:4b:d1:af:a9:f7:94:67:9f:b2:a1:88:d2:b0:85:55 Key ID: "ca-test-server" Serial: 0 Valid: forever Principals: ito-VirtualBox Critical Options: (none) Extensions: (none) ito@ito-VirtualBox:~$ ssh -i client/client.key client@ito-VirtualBox Certificate invalid: name is not a listed principal The authenticity of host 'ito-virtualbox (127.0.1.1)' can't be established. RSA key fingerprint is 8f:3e:82:c9:1f:5e:90:bd:46:09:0d:1d:7c:36:f5:73. Are you sure you want to continue connecting (yes/no)? no Host key verification failed.
OK
ito@ito-VirtualBox:~$ sudo ssh-keygen -s ca/ca.key -I ca-test-server -h -n ito-virtualbox /etc/ssh/ssh_host_rsa_key.pub Signed host key /etc/ssh/ssh_host_rsa_key-cert.pub: id "ca-test-server" serial 0 for ito-virtualbox valid forever ito@ito-VirtualBox:~$ ssh-keygen -L -f /etc/ssh/ssh_host_rsa_key-cert.pub /etc/ssh/ssh_host_rsa_key-cert.pub: Type: ssh-rsa-cert-v01@openssh.com host certificate Public key: RSA-CERT 8f:3e:82:c9:1f:5e:90:bd:46:09:0d:1d:7c:36:f5:73 Signing CA: RSA 2f:4b:d1:af:a9:f7:94:67:9f:b2:a1:88:d2:b0:85:55 Key ID: "ca-test-server" Serial: 0 Valid: forever Principals: ito-virtualbox Critical Options: (none) Extensions: (none) ito@ito-VirtualBox:~$ ssh -i client/client.key client@ito-VirtualBox Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Tue May 10 15:25:35 2016 from localhost client@ito-VirtualBox:~$
公開鍵認証の初回接続で出てくるような「ホストを信頼してknown_hosts
に追加しますか?」が出ずに, また, 新たにknown_hosts
に追加されるようなことなく接続できればホスト認証成功.
無意味にブログを引っ越しました
はてなIDを変えたかっただけ
MSフォント…駆逐してやる! このPCから…一文字残らず!
MSのデフォルトフォント…個人的に大っ嫌いです. 特にMSゴシック. 置き換えとして出てきたメイリオはやたら横長で汎用的を失い, YUゴシックは下手に細くて可視性が迷子. 見出し用フォントでもあるまいに…
というわけでWindowsから徹底的にこいつらを消す方法をまとめ. とりあえずの殴り書きなのでそのうち更新していくかも(?)
置き換え先のフォント
置き換え先のフォントとして個人的なおすすめフリーフォント 【フリーフォント】源暎ゴシック - 御琥祢屋
DTPでも即戦力になるくらいのポテンシャルはあると思う. 好き. 個人的に 源暎ゴシックP Regular をベースに設定しています.
システムフォント
Meiryo UIも大っきらい!! を利用してごっそり置き換えます.
インストール → 置き換え先フォントを指定するだけ.
Google Chrome のフォント
大体の箇所は上記の設定で終わるのですが, Chromeに関しては一手間必要. なお, 設定反映がかなり不安定なので, 突然設定が反映されたり, 再起動で反映されたりとまちまちの模様.
1. 設定
まず chrome://flags を開いて, DirectWrite を無効にする.
後は, 設定タブ → 詳細設定を表示 → フォントをカスタマイズ で置き換え先フォントを指定.
2. フォントの詳細設定
上記の フォントをカスタマイズ 画面の右下にある フォントの詳細設定 で更に設定します. 初回は拡張機能のインストールを求められるはずなので大人しく従う.
インストールできたら同様に置き換え先フォントを設定.
3. 更にフォントを置き換える
世の中にはわざわざCSSで "MS Pゴシック" などとふざけた設定をしているサイトがゴマンと有ります. その対策.
まず以下の拡張機能をインストール.
そして新たなStyleとして以下のように設定を追加.
(源暎ゴシックP Regularでの例)
@font-face {
font-family: "MS Pゴシック";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "MS ゴシック";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "メイリオ";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "Meiryo";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "Arial";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "arial";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "Helvetica";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "sans-serif";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "MS PGothic";
src: local("源暎ゴシックP");
}
@font-face {
font-family: "sans-serif";
src: local("源暎ゴシックP");
}
All site にチェックを入れてSave.
ここまで設定することで大抵のサイトから醜いフォントを駆逐できたはずです, というメモ書き.
既知の問題点
システムフォントを変えると Intellij IDEA がすごいことになる. どうすごいことになるか気になる人はやってみるといいと思います.
多数回計測した実験結果をいい感じに集計したかった
今年やる
一年の計はなんとやらに乗り遅れ気味だが, とりあえず公開しておくことで自分をやらざるを得ない状況に追い込もうという魂胆.
- 論文
さっさと終わらせる - サーバ仮想化
管理楽にしたいよね - メディアサーバ作成
さっさと完成させて録画ファイルの視聴を賢くしたい. ある程度できたら公開する予定. - オレオレMarkdownエディタ(or atom拡張?)の作成
メモ/論文/スライド を楽にしたい. これもそのうち公開したい. - セスペ
DBに続けてNWもなぜか拾えてしまったので, 大してコスト掛からないしついでにこれも取っておこう的な - Win+Fedora 環境への乗り換え
Macはハードに縛られて辛くなってきたので乗り換えたい. vaioはよ. - 脱Scala初中級者
サクサク読み書きできるようになる - お絵かき
人様に見られても恥ずかしくない程度に描けるようになる - 積み本
めっちゃ積まれてるので消化する. 主にFPやDataStructureがいっぱい. - 機械学習系
みーはーなので音声合成や画像識別系に手を出したい
TEX yoda を買ってしまった
タイトル通りです. 知ってる人は知っている, MassDropとかで売ってたりするアレです.
欲しいなぁと思っていた矢先, TEX社の FaceBook で, ThinkPad ブランドの TEX yoda が販売され始めたという話を聞いた際に, 「直接メールすれば TEX yoda すぐ買えるよ」という情報も頂いてしまったのでこれは買うしかないなと. 折角なので ThinkPad のやつにしようかと思ったのですが, どうも青軸しかなく, 中国国内からしか買えないらしく断念. メールして買うことに.
メールをするとすぐさま 「Paypal で 291USD 払ってくれ. HAHAHA(意訳)」(ビックリマークいっぱいでちょーラフなメール)と言われ, 言われるがままに支払ったものの数日音沙汰なし. まさか…やられたか…と思っていたら台湾から届きました(ここまで僅か4日)
MassDropとは違い, 完成品でした. ちなみに軸とケース色が選べます.
使ってみて今のところの感想『キーボードってこんなに重かったっけ』
初ISUCONはダメだったので来年の俺に向けたメモ書き的な(scala)
なんか皆さんエントリを書いていたので今更ながら釣られて書いてみます(集団心理の勝利)
※内容的には散々だったので参考になるようなことはありません. 来年リベンジする際に個人的に役立てたい(願望)
なんとなくISUCON気になるなぁと呟いていた所, @uadachiさんにお誘いいただき, @haya14busaさんと3人で Some(null) として出ることになりました. 完全にfunctional programing in scala 大阪読書会のメンバー. ちなみにSome(null)は大嫌いです(scala勢的なアレ)
準備
出場が決まってからあまり日程がなく, 割と直前が忙しかったこともあり, 準備という準備はできませんでした. 過去問を解くという発想もなく, 「ISUCONの勝ち方」のようなエントリを流し見をしたり, mysqlを調べた程度. この時点でかなり雲行きが怪しい.
予選本番
開始
開始が遅れる中, Node.jsの実装はありません を大変そうだなーと人事のように思いながら待ち構えていた所, Scalaの実装は不完全です にまず絶望する.
技術的に自分にできるようなことは少ないので, せめても力になれそうなDB周りをやることに.
なにをともあれでとりあえずベンチマークを走らせる → 何故か通ってスコアが出る. 直後にrubyの実装を動かしていたことが発覚しましたデスヨネー. 改めてscalaの実装で動かして比較した所, 表記やリンクがなにかおかしく, ベンチマークも通らない. バグ取りから始まりました. 並行して他の二人がローカルでの実行環境を整えることに.
「scalaでweb…どうせplayだろ?」と構えていた所, まさかのskinny. とはいえ本質的にはあまり関係なかったです. 結論から言うと, templateの変数埋め込みがちょこっとおかしかっただけでした, めでたしめでたし.
中盤
DBのダンプを取ることになったらしく, ローカルでの実行はしばらく足止めを食らう. 後になんとか起動にこぎつけた. 後から考えると, 開発用インスタンス建てたほうが早かったですネ.
バグを取ったことでベンチマークは通るようになったがチョー遅い. ので, てきとうにスロークエリを調べる. 更にpt-query-digestとやらを使って統計を取る. /
でどうみてもアレなクエリが大量に吐かれてる事がわかる. @uadachiさんがnginx辺りを, @haya14busaさんがisFriend
やらのN+1をやっていたので, 自分はスロークエリから見つけたやたらでかいjoin箇所をなんとかしようとしてました. 他で使っている箇所がなかったので力技で非正規化をすることに.
終盤
スキーマ変更やインデックスの貼り直しで意外と時間がかかったもののなんとか実装. digestを見ていた限り, それなりのボトルネックになっていた部分なのでスコアアガルヤローとか思っていたらベンチマークの並列テスト(?)やらでコケる. いろいろ試したものの, エラーの詳細も分からずこの実装はボツに(チーン)
その他, 他の二人がuserをキャッシュさせたり, N+1を解決したりといろいろしていったもののスコア上がらず. そのまま予選終了してしまいました (俺バグ取りくらいしかやってなくね?気のせい?)
反省とか
ちゃんと準備してから望みましょう(当然)
- 感覚をつかむためにも, 過去問やる時間が欲しかったですね.
- ハングアウトで通話しながらやってたんですが, 実際に集まるべきでした. 多分効率が全然違う.
- 普段の開発じゃないので, 保守性を一切捨てたほうが良かったです. 普段じゃ絶対タブーな手法でもどんどん使おう.
@uadachiさん, @haya14busaさんありがとうございました.
使ってたツール等
これだけ書いておけば, 来年の俺がきっと思い出して良いスコアを出してくれるはず…!!scalaで初予選抜けするぞっ