macOS Sierraにしてssh時にパスフレーズを聞かれ、それを忘れた時

まあ私のことなんですけどね。自分の秘密鍵(id_rsa)のパスフレーズを忘れてしまいました。
macOS Sierraではセキュリティが厳しくなったのか、毎回聞かれます。

で、忘れたのでこれは詰んだかなと思っていました。
しかし、

アプリケーション → ユーティリティ → キーチェーンアクセス.app

を開き、右上の検索バーで「ssh」と打てば、該当の鍵の項目があるはずです。その項目をダブルクリックして、ウィンドウがでますので左下のパスワードを表示、にチェックを入れてあげると、ログインパスワードを聞かれますのでそれに答えれば良いだけです。

あーよかった。。。

追記
http://qiita.com/shao1555/items/9e7a368f495228332a03
によりますと、

~/.ssh/config に、

Host *
   UseKeychain yes
   AddKeysToAgent yes

としておくと聞かないようです。

MacでRubyのeventmachine絡みのエラー

MacでRubyのeventmachine絡みでエラーが↓。

An error occurred while installing eventmachine (1.0.5), and Bundler cannot
continue.
Make sure that `gem install eventmachine -v '1.0.5'` succeeds before bundling.

ちょっと遡ってみてみると、
compiling rubymain.cpp
compiling ssl.cpp
linking shared-object rubyeventmachine.bundle

make "DESTDIR=" install
make: /opt/local/bin/gmkdir: No such file or directory
make: *** [.RUBYARCHDIR.time] Error 1

make install failed, exit code 2

gmkdirがないよ!という話らしいです。

homebrewで入れます↓

$ brew install coreutils
$ gmkdir --version
mkdir (GNU coreutils) 8.25
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.

↓入りました。再度挑戦↓

$ bundle install

~中略~

compiling ssl.cpp
linking shared-object rubyeventmachine.bundle

make "DESTDIR=" install
make: /opt/local/bin/gmkdir: No such file or directory
make: *** [.RUBYARCHDIR.time] Error 1

make install failed, exit code 2

~中略~

↑まだgmkdirがないみたいです。というかなぜ/opt/local/bin/gmkdirを叩いているのでしょうか。自分の環境がmacportsから移行してhomebrewを使っている影響でしょうか???というわけでシンボリックリンクを張って↓対処します。rbenv再インストールで直るのではとか思うのですが。

$ sudo mkdir -p /opt/local/bin
$ sudo ln -s /usr/local/bin/gmkdir /opt/local/bin/gmkdir
$ sudo ln -s /usr/local/bin/ginstall /opt/local/bin/ginstall 

↑これでいいはずです。やってみます↓

$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...

中略

Installing eventmachine 1.0.5 with native extensions

中略

Bundle complete! 11 Gemfile dependencies, 20 gems now installed.

無事行けました!!!

golombset を使ってみる

かなり自分用備忘録な記事です。

ソート済の整数列を圧縮する件
https://github.com/kazuho/golombset

↑ こちらをmacで使ってみたというだけです。Linux系でも同様に動くと思います。

$ git clone https://github.com/kazuho/golombset
$ cd golombset/
$ make

makeするだけでバイナリができます。さっそく使ってみます。

$ (echo 100; echo 155; echo 931) | ./golombset --encode | od -t x1
0000000    41  90  6d  c0  ff                                            
0000005

$ seq 1000 > 1000.txt
$ seq 1000 | ./golombset --encode > 1000.compressed.txt
$ ls -lh 1000*
-rw-r--r--  1 mk  staff   126B 12  9 12:12 1000.compressed.txt
-rw-r--r--  1 mk  staff   3.8K 12  9 12:12 1000.txt

いいですね〜。コマンド版は4096個の整数までのようなので、それ以上の数をコマンド版で扱いたいときは cmd.c の

>unsigned keys[4096];
>unsigned char buf[65536];

を書き換えればいいのかなと思います。自分のコードに取り込みたいときは golombset.h をincludeすれば簡単に使えるのでありがたいですね。

いつか整数列圧縮オプションをRedisのListに入れたい私にとってたいへん参考になるコードです。ありがとうございました。

LAN内でSambaで認証なしファイル共有するための秘伝のsmb.conf

Ubuntu 12.04で動作を確認しました。

要求事項としては、

– LAN内でのみ使う
– セキュリティはゆるゆるでOK (自宅内を想定)
– Windows 7、Macからマウントできて、読み書き可能

あたりです。Sambaはたいていどこかで躓くと思います、私も何十時間も費やしてきました。以下の設定で今のところは安定しているので、備忘録として残しておきます。内容は、

– Linuxの設定 (Sambaを動かすマシン)
– Windows 7からのアクセス方法
– Macからのアクセス方法

です。

ただ、頑張ってLinuxのSambaと格闘するよりは、素直にQNAPとかのNAS買ったほうが良いと思います、私が最近購入したのはTS-131というものです。あっさり繋がりました。ただ機能が豊富すぎて全容が把握できていませんが。。。

– Linuxの設定

以下はUbuntuで動いた例ですが、他のディストリでも同じだと思います。

$ sudo apt-get install samba
# ↓smb.confを編集。具体的な中身は下に書いてあります
$ sudo vi /etc/samba/smb.conf

/etc/samba/smb.conf
[global]
	dos charset = CP932
	unix charset = UTF8
	display charset = UTF8
	server string = %h server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	load printers = No
	disable spoolss = Yes
	dns proxy = No
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
	printing = bsd
	print command = lpr -r -P'%p' %s
	lpq command = lpq -P'%p'
	lprm command = lprm -P'%p' %j

[share]
	comment = this is a samba storage.
        # ↓ path はディレクトリを作ってから chmod -R 666 しておくこと!
        # ↓の例であれば、cd /; mkdir storage; chmod -R 666 /storage
	path = /storage
	force user = root
	read only = No
	guest only = Yes
	guest ok = Yes
	vfs objects = recycle
	recycle:maxsize = 0
	recycle:touch = no
	recycle:versions = yes
	recycle:keeptree = yes
	recycle:repository = .recycle

nmbdとsmbdを再起動
$ sudo /etc/init.d/nmbd restart
$ sudo /etc/init.d/smbd restart

↑これでLinuxの設定は終わりです。

– Windows 7からのアクセス方法

左下のウィンドウズボタンを押す

「コンピュータ」をクリック

上の方にある「ネットワークドライブの割り当て」をクリック

「ドライブ」はなんでも良い、フォルダを「\\192.168.1.144\share」(\は円文字)を選択(↓画像の参照。もちろんIPアドレスはそのsambaのIPアドレスを指定すること。このときの「\share」は、smb.confの[share]を参照している意味のようで、たとえばsmb.confで[hoge]などとして設定を書いたら、\hoge を参照する必要がある)。「ログオン時に再接続する」にチェックを入れる、「別の資格情報を使用して接続する」には*チェックを入れない*。そして「完了」ボタンを押す
2015年11月09日月曜日、認証なしのsambaにwindows7から接続する場合の設定

するとマウントされて、sambaのディレクトリが見えるはず。通常のディレクトリやファイルと同じように扱える。

– Macからのアクセス方法

finderを開いて、メニューの「移動」→「サーバーへ接続」、「smb://192.168.1.144/share」と打ち込む

マウントされる

以上です。時が経過してクライアントやSambaのバージョン等変わるとまた異なってくるかもですが、少なくとも2015年11月9日の時点では動いています。

MacのYosemiteでキーボードショートカットを割り当てる

人それぞれ独自のキーボード捌きがあるかと思います。私はアプリケーションのタブの移動では、command+k、command+lで移動したい派です。

それらを実現する方法はいくつかあります。今までは、

– BetterTouchTool

を主に使っていました。しかし上手くいかない点もあります、たとえばterminal.appでcommand+lをBetterTouchtoolで割り当てても、どうやらterminal.app独自のショートカットのクリアが発動してしまいます。

少し調査してみると、OSの機能でショートカットを割り当てられることを発見したので、↓に書いておきます。

システム環境設定

キーボード

ショートカット

アプリケーション

「+」ボタンを押して、ショートカットを割り当てたいアプリケーションを選択

右側のメニューに出現したアプリケーションを選択した状態で「+」ボタンを押す

ウィンドウが開くので「メニュータイトル」と「キーボードショートカット」を打ち込む
(このときメニュータイトルは一字一句正確に)

ショートカットが割り当てられる

↑実際これで動くようになりました。私のキーボードショートカットはかなりの部分がBetterTouchToolの上に載っていますが、徐々にこのOS内蔵の機能に移行するのが良さそうです。たくさんある場合、登録作業は少々面倒ですが^^;