日本人の知らないユダヤ人

日本人でもユダヤ人になることができて、ユダヤ人になればイスラエル国籍を取得することができる。
欧米ではいろいろな階層にユダヤ人がいて、なんとなく雰囲気でわかる物らしいが、多くの日本人にとってユダヤ人とはどのような人々なのかと言うことはよくわからないと思う。
そのユダヤ人について、日本人からユダヤ教徒に改宗してユダヤ人になった著者が、その切っ掛けから改宗してユダヤ人になるまで、そしてユダヤ人はどのような人々なのかを、日本人という背景をもちながら、国際的な視点から語っているのでとてもわかりやすい。


ユダヤ人は2000年以上前から続くユダヤ教という物を紐帯として連携し、コミュニティを作り、そしてそれを規律として自らに課し続けてきた。 ひるがえって今の日本を見るとそのような社会的規律というような物はほぼ無くなってしまっていると思う。それは宗教などに縛られない分、とても自由な社会だと思うがその反面、精神的に頼るべき物、自分の背景、土台とするべき物がとてもあやふやな状態になっているのではないかと感じる。 これがニーチェの言った「神は死んだ」という社会なのだろう。


おそらく戦前戦後のしばらくまでは日本の精神的柱として、天皇を頂点とした「家」というシステムがあったのだろうと思うが、これはもうすでに機能しなくなっている。そういう現状に対して、何とかしようという動きが安倍首相の道徳教育や、森本学園の教育勅語なのだろうと思うが、こういった物に対する反応を見ていると一度失われた民族の神話や伝統を復活させることの難しさを感じる。

パスワード管理ソフトのススメ

DMMで不正アクセスされてエロ動画を4万2380円分落とされたけど、それで済んだわけと原因と対策を考えてみた - Engadget 日本版

engadgetというそれなりにテクノロジに詳しいサイトのライターですら

さすがにすべてのサービスを違うパスワードというのは、無理があるので、メールサービスで使っているものとほかのサービスとで変えるなど、できる範囲で変更しました。ただランダムパスワードにしても覚えられないので、従来より複雑にしつつ覚えられる範囲のものにしています。

といっているが、パスワード管理ソフトを使えば簡単にできる話なのになぜしないのか不思議で仕方ない。

パスワードを記憶に頼るという事をしている時点でセキュリティの弱点になる。


昨今様々なサイトで様々なアカウントを登録していると思うが、これらを記憶に頼るとどうしても2つか3つ、多くて5つくらいのパスワードを使い回すことになる。 そうなると上記の記事のようにどこかのサイトでパスワード流出があれば、それが他のサイトでも攻撃に使用されて、アカウントハックされてしまうことになる。


そうならないように昔からパスワード管理ソフトがあるんだが、昨今のパスワード管理ソフトは複数のOSに対応している物が多くあり、例えば自分が使用しているKeePass Password Safeなら、Windows、Mac、Android、iOSと普通の人が使うであろうOSなら全部対応している。

これのパスワードファイルをDropboxなどのオンラインストレージに入れて同期するようにすれば、どこの環境からでも自分のパスワードが最新の状況で使用することができる。


たしかに覚えているパスワードを入力するのと比較すると、Keypassなどを起動してパスワードをコピーしてくるのには若干手間がかかるが、いろんなサイトからパスワードが流出している現状、とくにお金が絡むサイトについてはパスワード管理ソフトでアカウントを管理するべきだと思う。


まずは金銭が絡むサービスからパスワード管理ソフトを使用してなれていってみてはいかがでしょうか。

ジョギングを始めて1年が経過した

ジョギングを始めてから1年が経過した。

最初は2.5km15分でどうにかこうにか走り切ったものの、次の日から1週間階段を降りるのもつらい筋肉痛に苦しまされることになった。

最初はそんな状態で、途中一月半ほど腰痛で走らない時もあったり、頻度がさがったりもしつつ、週1回から2回、1回7km前後のジョギングを習慣として続けることができたのは多分いい成果だろうと思う。

ほぼ1年ジョギングしてきたわけだが、なにか変化があったかというと実のところさほど変化がない。 

体重は元々77kgから78kgだったのが、76kgから77kgほどになり、多少食べて増えてもすぐ戻るようになった

体力は上がっているんだろうけど、明確に体力が上がったという感じはない、疲れてからの回復力は良くなったかなという気がする。

多少お腹の脂肪が減ったかなと言うのと、足のサイズが若干大きくなったような気がする。 さすがに脛には筋肉がついた。明確にな変化は脹ら脛の筋肉くらいか。

もうちょっと大きな変化があることを期待していたのはあるが、1年程度ではこんな物なのかも知れない。 長く続けていれば、しなかった場合との変化が大きくなっていくのだろうけれど、しなかった場合のことはわからないので、どれだけやってもあまり変化がないなと思うのかも知れない。

button をクリックしてページ遷移

buttonタグで作成したボタンをクリックしたらページ遷移させる方法にはいくつかある。

アンカータグでのリンク

<a href="hoge.html"><button type="button" >hoge</button></a>

javascriptで遷移

<script>
  function golink(){
     location.href="hoge.html";
  }
</script>
<button type="button" onclick="golink()">hoge</button>

phpで遷移

<?php
  if (isset($_POST['action']['golink'])){
    header('Location: http://www.example.com/hoge.html");
  }
?>
<form action="#" method="POST">
<button type="submit" name="action[golink]">hgoe</button>
</form>

Javascript でチェックボックスの状態を操作して、phpで受けとる

function AllCheck(){
    "use strict";
    var checked = document.formnm.chkall.checked;
    for (var i=0, len=document.formnm.elements['chkbx[]'].length;i<len;i++ ){
        document.formnm.elements['chkbx[]'][i].checked = checked;
    }
}
<form name="formnm" action="" method="POST">
<input type="checkbox" name="chkall"  onclick="AllCheck()" />全てにチェック
<input type="checkbox" name="chkbx[]" value="1">1
<input type="checkbox" name="chkbx[]" value="2">2
<input type="checkbox" name="chkbx[]" value="3">3
<input type="submit">
</form>

Javascript でチェックボックスの状態を操作して、phpで受けとる

function AllCheck(){
    "use strict";
    var checked = document.formnm.chkall.checked;
    for (var i=0, len=document.formnm.elements['chkbx[]'].length;i<len;i++ ){
        document.formnm.elements['chkbx[]'][i].checked = checked;
    }
}
<form name="formnm" action="" method="POST">
<input type="checkbox" name="chkall"  onclick="AllCheck()" />全てにチェック
<input type="checkbox" name="chkbx[]" value="1">1
<input type="checkbox" name="chkbx[]" value="2">2
<input type="checkbox" name="chkbx[]" value="3">3
<input type="submit">
</form>

ssh の話

リモート作業に使用する ssh の使い方をあらためてまとめてみた。

鍵の作成

鍵ファイルは公開鍵ファイルと、秘密鍵ファイルの二つが生成される。
公開鍵ファイルを他のサーバなどに登録し、秘密鍵ファイルは他の人に見られないようにしておく。

# ssh-keygen -t rsa -b 2048 -C "hoge@fuga.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): "保存場所の指定"
Enter passphrase (empty for no passphrase):  "パスフレーズの入力"
Enter same passphrase again:

 -t rsa、証明書に使用する暗号化方式の指定、だいたい rsa でいいんではないでしょうか。 楕円曲線暗号の ecdsa などもつかえる。


 -b 4096、暗号化のビット数、最低でも2048以上を指定しましょう。 8196 だと計算負荷があるけど、最近のマシンなら大丈夫でしょう


 -C、証明書につけるコメント、メールアドレスやサーバ名など必要に応じて


上記のコマンドで、通常は ~.ssh ディレクトリ以下に id_rsa と、id_rsa.pub が作成される。

パスフレーズについては入力しないというのもあり。 ssh を使った自動ログインを設定したいのなら、パスフレーズは入力しない。

パスフレーズを設定することにより、秘密鍵を盗まれても簡単には解読されないので安全になるが、不要という意見もある。

http://freak-da.hatenablog.com/entry/20100901/p1:SSH秘密鍵のパスフレーズは(つけるなら)11文字以上にしましょうねという話

個人的にはパスフレーズは設定して、ssh-agent(後述) を使用するほうがいいかなと思う。

鍵の確認

作成した証明書のビット数やコメントを確認するには ssh-keygen コマンドに -l オプションを付けて -f で公開鍵ファイルを指定する。

# ssh-keygen -lf id_rsa.pub
4096 SHA256:Z+3xx/WxWwxMxxxxxxxxxxxxxxxxxxxbMIug hoge@fuga.com

パスフレーズの変更

作成した証明書のパスフレーズを変更するには ssh-keygen に -p オプションを付ける。

# ssh-keygen -pf id_rsa
Enter old passphrase:"古いパスフレーズ"
Enter new passphrase (empty for no passphrase):"新しいパスフレーズ"
Enter same passphrase again:"新しいパスフレーズの再入力"
Your identification has been saved with the new passphrase.

鍵のコピー

作成した公開鍵、id_rsa.pub をリモートサーバにコピーする。

簡単なのは ssh-copy-id コマンドを使用する

# ssh-copy-id age.fuga.com
hoge@age's password:
Now try logging into the machine, with "ssh 'age'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

ログインしているマシンとアカウント名が違うなら、hoge@age.fuga.com で指定する。



よく使われているのは scp コマンドを使用する。

# scp ~/.ssh/id_rsa.pub hoge@age.fuga.com:
# ssh hoge@age.fuga.com
hoge@age's password:
Last login: Thu Feb 1 20:57:41 2017 from sage.fuga.com
$ mkdir .ssh
$ chmod 700 .ssh
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 700 .ssh/authorized_keys
$ rm id_rsa.pub

scp コマンドでコピーした場合には、.ssh ディレクトリがなればそれの作成や、authorized_keys ファイルへの追加などが必要になる。


これでリモートマシンに ssh でログインができるようになる。


sshd の設定

ssh の証明書ログインができるようになったら、証明書を使用しないログインを禁止しましょう。

/etc/sshd/sshd_config で sshd の設定をします。

PubkeyAuthentication yes # 公開鍵認証を有効にする
AuthorizedKeysFile   .ssh/authorized_keys # 公開鍵ファイルの場所
PasswordAuthentication no # パスワードログインの禁止

上記の変更をしたら、service sshd restart などで sshd の再起動をする。 念のため、現在のログインをそのままにして、新しく ssh ログインをして正常にログインできるか確認しましょう。

ssh config の設定

ssh でログインするときには、

# ssh hoge@age.fuga.com

としますが、~.ssh/config ファイルを設定しておくことで省略してログインすることができるようになる。

Host age
     HostName age.fuga.com
     User hoge
     IdentityFile ~.ssh/id_rsa # 標準の鍵ファイルなら必要ない

これで

# ssh age

でログインできるようになる。

ssh-agent の使用

秘密鍵にはパスフレーズを設定したほうがいいと思うが、それをすると毎回ログインするときにパスフレーズの入力が必要になり、面倒くさい。

ssh-agent を使用するとパスフレーズを覚えてくれるので毎回パスフレーズを入力する必要がなくなる。

まずは ssh-agent を起動。

# eval `ssh-agent`
Agent pid 25908

このコマンドを .bash_profile などに登録しておくとログイン時に自動的に実行される。


秘密鍵ファイルの登録。

# ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/hoge/.ssh/id_rsa:
Identity added: /home/hoge/.ssh/id_rsa (/home/hoge/.ssh/id_rsa)

これでログインしているシェルから抜けるまではパスフレーズを覚えていてくれる。

ssh-agent が覚えている鍵は ssh-add -l で表示できる。

# ssh-add -l                                                     *[~]
8192 SHA256:Z+3xx/WxWwxxxxxxxxxxxxxxxxxxxxxxxsPphbbMIug .ssh/id_rsa (RSA)
2048 SHA256:BPgh9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuZ4 .ssh/id_rsa_nar (RSA)