今日も朝はつらかった。休日なら寝たいだけ寝てゆっくり起きてゆっくりしていればいいが、平日はそうは問屋が卸さない。8時過ぎに起きたときは、ものすごく辛かった。辛いけど会社には行かねばならぬ。なんとか支度をして朝食を食べて会社へ。遅刻しても朝食は抜かしてはいけない。三食バランスよくきちんと食べないと、かえって太りやすくなる。
今日は9時半くらいに会社に着いた。定時を過ぎてはいるが、最近にしては早い方だ。これでも行くときはかなりしんどい。そして仕事を進めようとするが、これがなかなか進まない。けっこう難解なプログラムをエンハンスしているのだが、ちょっとはまっている。
リモートホストのsshdが許可しているプロトコル(SSH1、SSH2)と認証方式を取得する、というPerlのパッケージを作っているのだが、Net::SSH::Perl::Auth というモジュールの supported( [ $auth_id [, $server_supports ] ]) というメソッドを使ってやろうとしている。CPANのDESCRIPTIONによると、
With two arguments, $auth_id and $server_supports, returns true if the auth represented by $auth_id is supported both by Net::SSH::Perl and by the sshd server. The list of methods supported by the server should be in $server_supports, a bit mask sent from the server during the session identification phase.
ということなのだが、$auth_idというのは他のメソッドで一覧を取得できるものの、$server_supports というのがうまく取得できない。sshの通信で取得できるはずなのだが、どうもうまくいかん。ググってもなかなか「これ」という情報にたどり着かないし。
はあ、早く明日になって会社に行って続きがやりたいよう。
コメント
http://www.snailbook.com/docs/userauth.txt
ここの
5. Authentication Requests
……
string service name in US-ASCII
string method name in US-ASCII
…. method specific fields
どれを入れてくれる実装なんでしょうね?
smtp や nntp なら、telnet でやったことありますが、
SSHは無いなあ ^_^;;
tcpdump で(あ、あるのかな?)
何が返ってくるかみたいですね。
ゆたかさん、いつもこの手の話題に食いついてくれてありがとうございます。上記URLの
4. The Authentication Protocol Framework
にある、
The server drives the authentication by telling the client which authentication methods can be used to continue the exchange at any given time. The client has the freedom to try the methods listed by the server in any order.
の’by telling the client which authentication methods can be used’を拾おうとしている、というか拾っているのですが、フォーマットがわからんのです。
RFCまで見てなかったのですが、この中に詳しく書いていると思うので、こいつをもう少し頑張って読んでみます。
tcpdumpを取るという手もありましたね。それもやってみようと思います。