OpenSSH 6.8/6.8p1 で鍵指紋のアルゴリズムの規定値が変わったので試す

openssh

OpenSSH 6.8/6.8p1 のリリースノートを眺めていて気になる点が.
http://www.openssh.com/txt/release-6.8

* Add FingerprintHash option to ssh(1) and sshd(8), and equivalent
   command-line flags to the other tools to control algorithm used
   for key fingerprints. The default changes from MD5 to SHA256 and
   format from hex to base64.
 Fingerprints now have the hash algorithm prepended. An example of
   the new format: SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE
   Please note that visual host keys will also be different.

鍵指紋の規定アルゴリズムがMD5 からSHA256 に変わり,表示形式もhex からbase64 になった,visual host key も変わる.ということで確認してみました.

従来のコマンドでの鍵指紋表示.MD5/hex が使われる

% ssh-keygen -l -v -f /etc/ssh/ssh_host_ecdsa_key
256 e8:d0:53:e7:34:59:e9:77:3a:e7:8d:8a:a9:f6:91:84 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
+---[ECDSA 256]---+
|            ..   |
|           o.    |
|        . =.     |
|     . o = .. . .|
|    . + E o  . o |
|     o . . .  o .|
|      .   o    =.|
|        .  +  . o|
|       ..o+ ..   |
+-----------------+

OpenSSH 6.8/6.8p1 のコマンドでの鍵指紋表示.SHA256/base64が使われて鍵指紋の頭にSHA256が付いたりvisual host key の見た目も変わる.

% /home/mk/usr/local/openssh-6.8p1/bin/ssh-keygen -l -v -f /etc/ssh/ssh_host_ecdsa_key
256 SHA256:pDZReijOXeDXAE0IgYb5E+DHgbyvClEllKCs499RI54 root@x220(ECDSA)
+---[ECDSA 256]---+
|+*+++oo=+        |
|*o*o...=.o       |
|.=o+. = = .      |
|.o+o o B         |
|+ ..o.=oS        |
|.o ...+..        |
|...  E           |
|... . .          |
|o  . .           |
+----[SHA256]-----+

しかし,-E option が提供されるようになってアルゴリズムを指定できるのでこれでMD5/hex で鍵指紋の確認が可能.
※ssh-keygen —help より

   ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]

※man より

 -E fingerprint_hash
         Specifies the hash algorithm used when displaying key fingerprints.  Valid options are: “md5” and “sha256”.  The default is “sha256”.

OpenSSH 6.8/6.8p1 のコマンドでMD5 を指定.MD5/hex で鍵指紋が表示される.ただ,アルゴリズムのMD5 が鍵指紋の頭につくし後ろにcomment も付くのでdiff とかを使うと差異が出る.visual host key も下に[MD5]がつくので同様.

% /home/mk/usr/local/openssh-6.8p1/bin/ssh-keygen -l -v -E md5 -f /etc/ssh/ssh_host_ecdsa_key
256 MD5:e8:d0:53:e7:34:59:e9:77:3a:e7:8d:8a:a9:f6:91:84 root@x220(ECDSA)
+---[ECDSA 256]---+
|            ..   |
|           o.    |
|        . =.     |
|     . o = .. . .|
|    . + E o  . o |
|     o . . .  o .|
|      .   o    =.|
|        .  +  . o|
|       ..o+ ..   |
+------[MD5]------+
% ssh-keygen -l -v -f /etc/ssh/ssh_host_ecdsa_key

てことで暫くはMD5/SHA256の2種類の鍵指紋を提供したほうが良さそうですね.

Xperia Pro(MK16a)をBootloader Unlock してみた

Xperia Pro(MK16a)を持っているのですが,OSが古いし標準アプリも多くてストレージもいっぱいで使いたいアプリもなかなか入れることが出来ません.
最近はこの端末にMVNOのSIMを刺してモバイルルータ and GPSロガー的に使っていますがbluetooth tethering も使えずWi-Fi tethering だとバッテリの減りも早いです.ということでカスタムROMやCyanogenMod11か12あたりに入れ替えたいのですがブートローダーにロックがかかっているのでまずはこれを解除しないといけません.Test Point を使ったりするのは面倒だなと思っていたのですが,現在は公式でアンロックコードを手に入れることができるのでこちらで行うことに.
※保証がきかなくなります.SEUSなどが利用できなくなります.公式アップデートも利用できなくなるそうです.(まあこれからOTAとか来ることはないと思いますが)

本体の他に以下のものが必要です.ここでは開発環境の説明はしません.

  • Android 開発環境の動作するPC(今回はDebian Jessie)
  • Android 開発環境の中のfastboot コマンド(sdk/platform-tools 以下)
  • USB A-microB ケーブル

アンロックコードの入手

アンロックコードは以下のページから入手できます.

機種を選択して,メールアドレスを入力すると確認メールが届くので,そのメールのURL をクリックするとIMEIの入力画面になって,そこでIMEI を入力することでCodeが入手できます.

アンロック

Xperia Pro の電源を切ります.
USBケーブルはPCのみに接続する
電源Off 状態からメニューボタンを押しながらUSBケーブルを接続する
右上側面のHDMIコネクタ横のLEDが青くなるとFastbootモードになっている

Fastboot モードの時のdmesgはこんな感じでした.

[78677.917985] usb 1-1.1: new high-speed USB device number 30 using ehci-pci
[78678.013776] usb 1-1.1: unable to get BOS descriptor
[78678.025756] usb 1-1.1: New USB device found, idVendor=0fce, idProduct=0dde
[78678.025764] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[78678.025769] usb 1-1.1: Product: S1Boot Fastboot
[78678.025774] usb 1-1.1: Manufacturer: Sony Ericsson Mobile Communications AB
[78678.025778] usb 1-1.1: SerialNumber: CB5A1G45XXXXXX

fastboot devices コマンドで接続を確認します.

% ./fastboot devices
CB5A1G45XXXXXX  fastboot
% ./fastboot -i 0x0fce getvar version
version: 0.3
finished. total time: 0.001s

もしここでno permissions fastboot というエラーが出る場合はadb serverを起動しなおしてみるとうまく行くようです.それでもうまく行かない場合root権限で起動し直す(sudo command)とうまく行ったことも.

% ./fastboot devices
no permissions  fastboot
% ./adb kill-server
% ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
% ./fastboot devices
CB5A1G45XXXXXX  fastboot

問題ないようなら以下のコマンドでアンロックコードを指定してアンロックします.

% ./fastboot -i 0x0fce oem unlock 0xC3BA1080A6XXXXXX
...
(bootloader) Unlock phone requested
(bootloader) Erasing block 0x00001300
(bootloader) Erasing block 0x00001400
(bootloader) Erasing block 0x00001500
(bootloader) Erasing block 0x00001600
(bootloader) Erasing block 0x00001700
(bootloader) Erasing block 0x00001800
(bootloader) Erasing block 0x00001900
(bootloader) Erasing block 0x00001a00
(bootloader) Erasing block 0x00001b00
(bootloader) Erasing block 0x00001c00
(bootloader) Erasing block 0x00001d00
(bootloader) Erasing block 0x00001e00
(bootloader) Erasing block 0x00001f00
OKAY [  4.587s]
finished. total time: 4.587s

これでアンロック完了です.
次はOSを入れ替えてみます.

ownCloud 7.0.4 導入でownCloud Client 接続で嵌まる

レンタルサーバのheteml にownCloud 7.0.4 を導入する簡単なお仕事.ssh も使えるし〜と思ってさくっと導入してWeb でのテストまでして引渡したのですがユーザからownCloud のクライアントで接続できないとのこと.

ログファイルを出力しつつ試してみると確かに繋がりません.

% owncloud —confdir ./ —logfile ./log —logflush —logwindow

  • —confdir 設定ファイルのディレクトリ指定
  • —logfile ログファイル指定
  • —logflush ログのリアルタイム出力
  • —logwindow ログ出力ウィンドウ表示

WebDav でもうまく行かない.

怪しそうな以下のエラーメッセージで検索するとそれらしいものを発見.

No basic authentication headers were found

コメントを参考に以下の2ファイルを修正.

  • .htaccess
  • lib/base.php
$ diff -u .htaccess.org .htaccess
--- .htaccess.org       2015-02-19 18:41:36.000000000 +0900
+++ .htaccess   2015-03-03 18:09:27.000000000 +0900
@@-17,6 +17,9 @@
 </IfModule>
 <IfModule mod_rewrite.c>
 RewriteEngine on
+RewriteCond %{HTTP:Authorization} ^Basic.*
+RewriteRule ^(.*) $1?Authorization=%{HTTP:Authorization} [QSA,C]
+RequestHeader unset Authorization
 RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
 RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
@@-40,4 +43,4 @@
 </IfModule>
$ diff -u lib/base.php.org lib/base.php
--- lib/base.php.org    2014-12-09 03:34:15.000000000 +0900
+++ lib/base.php        2015-03-02 20:58:04.000000000 +0900
@@-805,6 +805,12 @@

        protected static function handleAuthHeaders() {
                //copy http auth headers for apache+php-fcgid work around
+               if(isset($_GET['Authorization']) && preg_match('/Basic\s+(.*)$/i', $_GET['Authorization'], $matches))
+               {
+                   list($name, $password) = explode(':', base64_decode($matches[1]));
+                   $_SERVER['PHP_AUTH_USER'] = strip_tags($name);
+                   $_SERVER['PHP_AUTH_PW'] = strip_tags($password);
+               }
                if (isset($_SERVER['HTTP_XAUTHORIZATION']) && !isset($_SERVER['HTTP_AUTHORIZATION'])) {
                        $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['HTTP_XAUTHORIZATION'];
                }
```language

これでどうにか繋がるようになりました.
同じような環境はそこそこありそうですけどね….

Android から USB-TTL 経由でRaspberry Pi にアクセス

ふと,手元のUSB-TTLアダプタ(Prolific PL2303)とmicroUSBのホストケーブルでAndroidに繋げば普通に使えるのではと思って試してみました.

Raspberry Pi 側の接続.
赤の5Vは接続しなくても動きますが,接続すると少し給電されます.
IMG_20150212_163124

こんな感じに.
IMG_20150212_204416.jpg

Android側のアプリは10種類ほど試しましたが今回利用したProlific PL2303では以下の3つでデバイスを認識しました.Playストアを見た感じではFTDI対応のものが一番多そうでした.

という感じで実際利用できているのはUSB Serial Terminal Liteだけでした.

設定はBitrateの変更と文字コードの変更を行いました.
Screenshot_2015-02-12-20-39-28

デバイスの認識状態はこんな感じ
Screenshot_2015-02-12-20-24-12Screenshot_2015-02-12-20-24-19

そしてこんな感じで使えています
Screenshot_2015-02-12-20-22-35

使い勝手はあまり良くないですが,出先とかでちょっとコマンドを打ちたいときに良さそうです.

オープンソースカンファレンス2015大分に参加

オープンソースカンファレンス2015大分に参加してきました.今回は鹿児島らぐとして展示とLTをしてきました.

IMGP0266IMGP0295
展示はKobo Debian/Android, Raspberry Pi でRasinbowstream, Raspberry Pi 2 model B デモなどでした.Raspberry Pi ブースのような感じですが鹿児島でLinuxに関する活動をしている鹿児島らぐの展示でした.(…鹿児島らぐの説明よりもずっとたくさんRaspberry Pi のはなししてましたが)

IMGP0287

ライトニングトークはトップバッターでした.スライド終わりだけど残り時間どのくらいかなと確認しようとしたところでちょうど時間で偶然時間ピッタリで終わりました.大体近県?のイベントでの宣伝は出来たかなと思いますが,広島や四国でもできればやりたいところです.以下がその時のスライドです.

鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT) from Kenichiro MATOHARA



その後懇親会に参加してホテルへ帰りました.
IMGP0350

次回の鹿児島らぐの県外のイベントは未定です….鹿児島でのイベントは「鹿児島Linux勉強会」を2/21(土)に開催予定です.詳細はWeb/ML等で確認してください.

そして開けて今日はOSC大分翌日観光があったのですがこれはまた別エントリで.



Raspberry Pi 2 model B が到着!

Raspberry Pi 2 model B を入手しました.
注文したのはRSオンライン( http://jp.rs-online.com/web/ )で 2015/02/02, 月曜日, 19:48
受け取りは 2/6 でした.
丁度大分に向かうので受け取れるか微妙だったので営業所止にしてもらい受け取ってから大分に向かいました.
IMG_20150206_194411IMG_20150206_194419
途中のバスの待ち時間に写真を撮ってみました.
IMGP0250
箱がカラフルに!
IMGP0251
IMGP0257IMGP0252
中身はぱっと見 Raspberry Pi model B+ と見分けが付かない感じ.
IMGP0253
RAM のChip が別れてウラ面に張り付いてました.
IMGP0254
IMGP0255IMGP0256
大分で起動してみると4Coreになったので Raspberry が4個!
IMG_20150207_092908
未だ出先なので家に帰ったら色々触ってみるつもりです :)

追記)
Element14 扱いだと箱も説明書も違うみたい.特に説明書.

端末で動くTwitterClient Rainbowstream

確かOSSJで見かけて知ったのだと思うのですが,

端末上で動作するTwitterのRainbowstreamというソフトウェアを知りました.

ユーザーストリーム対応で端末上にユーザストリームや検索結果リストなどが表示できます.画像をアスキーアートで表示する機能もあります.

導入

pipで入る

$ sudo apt-get install python-pip python-dev
$ sudo pip install rainbowstream PySocks Pillow

初回起動時に認証のためブラウザが起動する.認証ご表示されたpinを端末に貼り付ける.認証情報は ~/.rainbow_oauth に保存されるので要らなくなったら消す.
無くても動くけど無いと設定変更が出来ないので設定ファイルの用意をする.

% wget https://raw.githubusercontent.com/DTVD/rainbowstream/master/rainbowstream/colorset/config -O /tmp/config
% mv /tmp/config ~/.rainbow_config.json

GNU Screen のウィンドウ分割モードだと崩れてしまうので,小さめのウィンドウに表示するといい感じです.以下の画像はawesome で端末を2つ表示してRainbowstreamを実行した端末を小さくしているところです.
20150202_07:02:05-608

画像のアスキーアート表示は楽しいのですが,一気にログが流れてしまうのでoffにしちゃいました.
自作のPerl Script で昔作ったものがあるのですが,Rainbowstreamのほうがカラフルで見た目がいい感じです.

Ubuntu 10.04 LTS そろそろeol

先日の所謂GHOST脆弱性騒ぎの時に Ubuntu 10.04 LTS の修正を見かけて気付いたのですが,Ubuntu 10.04 LTS サーバーのサポートが4月いっぱいまでです.デスクトップは既に2012年にサポートが終わっているので利用者は少ないでしょうがサーバで使っている人で移行していない人はそろそろ移行しないとですね.

LTS の移行先としてはUbuntu 12.04 LTS が2017年04月迄.Ubuntu 14.04 LTS が2019年04月迄です.10.04 LTS から12.04 LTS には一気にアップグレードできるはずですが,10.04 LTS から14.04 LTS へは一気にアップグレードは出来ないと思います.環境によりますが新環境を14.04 LTS で作って移行したほうが楽かもですね.

Snappy Ubuntu Core on Raspberry Pi 2

Screenshot from 2015-02-05 07:30:48

Raspberry Pi のOS ダウンロードページに SNAPPY UBUNTU CORE が.未だAlpha 2 だけど.

Snappy Ubuntu Core の要件はARMv7 128RAM なのでRaspberry Pi 2 以降でないとダメだけどRaspberry Pi で動かすのも面白そうですね.
ちなみにBBB のSnappy Ubuntu Core はこの辺に

Raspberry Pi な同人誌以下で頒布中です.

Raspberry Pi 新モデル Raspberry Pi 2 model B 登場

Raspberry Pi B+ / A+ が出たばかりですが,Raspberry Pi 2 model B というものが発表されました.もう出荷も始まっていて注文も可能です.

Raspberry Pi 2 on sale now at $35 | Raspberry Pi
Pi2ModB1GB_-comp

ぱっと見の見た目はRaspberry Pi model B+ と一緒な感じですね.RAMは基板裏に言ったらしいので裏返すと違い分かりそう.
CPUがARMv6からQuadCoreのARMv7,RAM 1GBになって6倍に高速化とか.値段は据え置き$35で旧モデルも併売.Raspberry Pi 2 model A+ は少なくとも2015年には出さないとのこと.個人的にはあまり惹かれないのですがWindows10も無償で提供されるようです.WindowsRT のような感じになるのでしょうか.とはいえこれで注目度はまた上がるでしょうね.

ARMv7 QuadCore RAM1GB になったのでARMv6を捨てたディストリビューションも動くようになりそうだし,Xのアプリも大分さくさく動くようになりそうな気がします.
これから買うなら RaspberryPi 2 model B か Raspberry Pi Model A+ という感じになりそうですね.
今回は前回と違ってリークもなくSoCに更新はしばらくないと思っていたのでいきなりの発表でびっくりしました.しかしRaspberry Pi model B+ を買う理由が殆ど無いのでなんか可愛そうです….

A B A+ B+ 2 B
RAM 256MB 512MB 256MB 512MB 1GB
ネットワーク
USB 1 2 1 4 4
GPIOピン数 26 40 26 40 40
ストレージ SD SD microSD microSD microSD
消費電力 300mA(1.5W) 700mA(3.5W) 300mA(1.5W)より低い 600mA(3.0W) ?
サイズ 85mm×56mm 85mm×56mm 65mmx56mm 85mm×56mm 85mm×56mm
価格 $20 $35 $20 $35 $35

私はとりあえず2/2の夜にRS-Components から注文しました.1~5営業日でお届け。 になっていてま台本への移動中のようなので恐らく英国在庫ですね.(土曜あたりになりそうだけど土曜OKのオプションを付け忘れたので月曜かな?)値段はこんな感じでした.

RS品番 数量 単価 合計 商品の概要
832-6274 1 ¥3,966 ¥3,966 Raspberry Pi 2 Model B
商品本体の合計 ¥3,966
配送料 ¥450
消費税 ¥353
合計 ¥4,769

\8,000-以上で送料無料だったと思うので3枚買うと割安になりますね.

しかし,今から注文すると2月末の到着になるようです.割高になりますが在庫のあるケースやさんとかで購入したほうが早く手に入りそうです.

そういえばコミケット87で頒布した Raspberry Pi な同人誌以下で頒布中です.