Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
*Backtrace*(2003-05-04)
[go: Go Back, main page]

書いてる人: 高橋カヲル | [mixi] | [PGP] | [TETRiS DS] | [portscout] | [RSS]

トップ «前の日記(2003-05-03) 最新 次の日記(2003-05-05)» 編集

*Backtrace*

1999|12|
2000|01|02|03|04|05|06|07|08|09|10|11|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|

2003-05-04

_ [Emacsen] M-x toggle-debug-on-error

;; toggle-debug-on-*
(unless (fboundp 'toggle-debug-on-error)
  (defun toggle-debug-on-error (&optional; arg)
    "Toggle the status of debug-on-error.
With arg, set debug-on-error iff arg is positive."
    (interactive "P")
    (setq debug-on-error
	  (if (null arg)
	      (not debug-on-error)
	    (> (prefix-numeric-value arg) 0)))))
(defadvice toggle-debug-on-error (after add-message activate)
  (if debug-on-error
      (message "Debug on Error %s" "enabled")
    (message "Debug on Error %s" "disabled")))

有効か無効かわからんので message を出すように advice していた。でも、本気で toggle したいことなんかあるんだろうか。こんなもの有効にしたいか、あるいは無効にしたいかのどっちかだろう。

(defun enable-debug-on-error ()
    (interactive)
    (setq debug-on-error t))
(defun disable-debug-on-error ()
    (interactive)
    (setq debug-on-error nil)
    (message "Don't forget M-x top-level"))

_ マシントレ&プール調教

ランニングトラックって 100m ダッシュには向かないね、曲がりきれませんよ。マシントレを適当にこなしてから、例によって追い出されるまで。

_ GlobalKnownHostsFile as read only known_hosts

東京への出張の前に ~/etc/ssh/ssh_known_hosts をメンテナンスした。オレのように中途半端に PARANOiA 入ってる ssh 使いにとっては、便利かもしれないから適当に書いてみる。 ~/.ssh/known_hosts だけじゃなくてもうひとつ read only の known_hosts を用意しませんか、という話。

The authenticity of host 'foo.example.org (0.1.2.3)' can't be established.
RSA1 key fingerprint is bb:db:00:00:00:be:ef:00:00:00:de:ad:00:00:00:00
Are you sure you want to continue connecting (yes/no)? 

無条件で yes と叩くような人にはおそらく無用な話ですし、ましてや

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA1 host key has just been changed.

を見ても無条件で ~/.ssh/known_hostsを削って繋ぎ直すような人には何の役にも立ちません、きっと。

* 設定

~/.ssh/config に GlobalKnownHostsFile を設定するだけ。オレは ~/etc/ssh/ssh_known_hosts を使っているが、自分のホームのレイアウトにあわせりゃいい。他の設定も削らずに載せてみる。

Host *
  GlobalKnownHostsFile ~/etc/ssh/ssh_known_hosts
  StrictHostKeyChecking ask
  CheckHostIP yes
  FallBackToRsh no
  UseRsh no
  Cipher blowfish
  Ciphers blowfish-cbc,arcfour,aes128-cbc,cast128-cbc,3des-cbc,aes192-cbc,aes256-cbc

GlobalKnownHostsFile は手元のマシン全体での使用が想定されており、デフォルトは /etc/ssh/ssh_known_hosts になっている。 /etc/ssh/ssh_known_hosts なんぞ使わないと心に決めてしまえば、 UserKnownHostsFile (~/.ssh/known_hosts) 以外にもう一つ GlobalKnownHostsFile をホスト鍵データベースとして使える。 UserKnownHostsFile とは違い、 GlobalKnownHostsFile には自動的に鍵が追加されることはない (read only)。

* 何が嬉しいのか?

時間的あるいは政治的制約によって「最初の一回からずっと Man-in-the-middle なんか食らうわけがない」という前提でロクに確認もせずにホスト鍵を受け入れさせられることがある。一方で、鍵指紋なり現物なりで確認済みホスト鍵もあるわけだ。これらのホスト鍵を UserKnownHostsFile (~/.ssh/known_hosts) 一つだけで区別して管理するなんてやってられない。あなたが extreme な PARANOiA 野郎なら StrictHostKeyChecking yes で生活し、意地でもホスト鍵の確認をしてから ~/.ssh/known_hosts に追加すればいい。だが、オレと同じく中途半端な PARANOiA 野郎なら、割り切った上で区別してホスト鍵を管理したくなるはずだ。

  • 確認済みのホスト鍵は手動で GlobalKnownHostsFile (~/etc/ssh/ssh_known_hosts) に追加する。
  • UserKnownHostsFile (~/.ssh/known_hosts) はゴミ溜めとしてロクに確認していないホスト鍵のためにくれてやれ。

というわけだ。もう何も恐れずに ~/.ssh/known_hosts を空にできる。

* 鍵の追加

/etc/ssh/host_*_key.pub を持ってきてちょこっといじってやればいいだけの話。後ろのコメントをはがし、頭に ssh の引数になりうるホスト名を入れておく。 ssh の引数に使うホスト名が複数ありうるならばカンマで区切って並べる(カンマの後にスペースを入れてはいけない)。もしくは .ssh/config で HostKeyAlias の設定をがんばってもよい。

foo.example.com,foo.example.org ssh-dss AAAABBBBBBBBBBBBBBBBBBBBBBBBB==
foo.example.com,foo.example.org ssh-rsa AAAABBBBBBBBBBBBBCCCCCCCCCCCCB==
bar.example.com ssh-dss AAAAZZZZZZZZXXXXXXXXXXXXXXXXXX==

この例では行を短くしたが、実際には1行が長いので途中に改行を入れないように注意する。

* 鍵追加ポリシー

PARANOiA 具合・確認にかかるコスト・GlobalKnownHostsFileの管理方法あたりを考えて決めればいい。ほとんど追加できずに UserKnownHostsFile をガンガン使うようでは本末転倒だ。参考までにオレの場合:

  • コンソールで鍵の目視確認
  • コンソールで鍵指紋 (finger print) の目視確認
  • 管理者からの PGP signed mail で 鍵指紋を確認

ぐらいと考えている。が、面倒なときは「router 越えてなけりゃいいや」と思って緩めてしまうこともあった。

[]

トップ «前の日記(2003-05-03) 最新 次の日記(2003-05-05)» 編集

謎 queue & status

Powered by 早起き生活
[Powered by OpenBSD] [Powered by たん清] [やる気のないサイト] Valid HTML 4.01 Strict Page Rank Checker [VALID RSS!] RSS feed meter for http://triaez.kaisei.org/~kaoru/diary/