Ticket #37540

Open Date: 2017-09-29 18:54

Last Update: 2017-10-20 17:29

Do not show "comment"

Reporter:(Anonymous)Owner:(None)
Priority:5 - MediumMileStone:(None)
Type:Feature RequestsSeverity:5 - Medium
Component:Tera TermStatus:Open
ResolutionNone

Details

SSHログイン時の公開鍵に設定されているコメントの表示箇所がない。
どのカギを使っての認証が開始するかわからないので、 せっかくログイン前の注意事項をコメントに書いてあっても無視されてました・・・。

Using username "hoge-user".
Authenticating with public key "Public key comment!!" from agent

どうかご対応願います・・・

Attachment File

Attachment File ListNo attachments
Add New attachment
Add attachment filesPlease login to add new attachment

Ticket History - 3/11 Histories [Show all old Histories]

2017-09-29 18:54 Updated by: None

  • New Ticket "Do not show "comment"" created

2017-09-30 00:27 Updated by: maya

  • Component Update from Tera Term to TTSSH
  • Type Update from Bugs to Feature Requests

Comment

  • 貼り付けてられているログはPuTTYのログイン時のものですか?
  • 表示されているのは「Pageantに登録されていて、認証に使用された秘密鍵のコメント」のようですが、秘密鍵のコメントに「ログイン前の注意事項」を書いているんですか?
  • これが表示されるのは認証が通った後だと思いますが、「ログイン*前*の注意事項」が認証後に表示されて大丈夫なんですか?
  • 「Pageantに登録されていて、認証に使用された秘密鍵のコメント」を「Help」-「About TTSSH」のダイアログに表示することはできるかもしれませんが、「無視されてました」ということはPuTTYのようにログイン直後にVTWindowに表示されなければ意味がないということですか?
  • あなたはコメント付きの秘密鍵を生成して他の利用者に配布していて、サーバにログインした直後に利用者にメッセージを読ませたいということですか?だとしたらサーバの/etc/motdや~/.bashrcにそのメッセージを書くことはできませんか?

2017-10-02 14:06 Updated by: doda

  • Component Update from TTSSH to Tera Term
  • Type Update from Feature Requests to Bugs

Comment

メッセージの通知といえば、Banner設定(SSH_MSG_USERAUTH_BANNER)が現状無視されていますね。 これのサポートは有った方がいいかも。

2017-10-18 12:44 Updated by: None

Comment

maya への返信

* 貼り付けてられているログはPuTTYのログイン時のものですか?

はい。ただ、ssh -vvv でも出てきているはずです。

* 表示されているのは「Pageantに登録されていて、認証に使用された秘密鍵のコメント」のようですが、秘密鍵のコメントに「ログイン前の注意事項」を書いているんですか?

ログインどうこうではなく、鍵についてのコメントです。

* これが表示されるのは認証が通った後だと思いますが、「ログイン*前*の注意事項」が認証後に表示されて大丈夫なんですか?

そういう意味で認証後じゃ遅いですね;

* 「Pageantに登録されていて、認証に使用された秘密鍵のコメント」を「Help」-「About TTSSH」のダイアログに表示することはできるかもしれませんが、「無視されてました」ということはPuTTYのようにログイン直後にVTWindowに表示されなければ意味がないということですか?

よく知りませんが、ログイン時に利用する鍵の一致確認用にkeyにコメントを明記しておくことは一般出来じゃないんですかね? pc001@fuga.comとかhoge-san@fuga.comとかつけてました。

* あなたはコメント付きの秘密鍵を生成して他の利用者に配布していて、サーバにログインした直後に利用者にメッセージを読ませたいということですか?だとしたらサーバの/etc/motdや~/.bashrcにそのメッセージを書くことはできませんか?

ログイン者全員に表示するわけではないので、ユーザー振り分け設定を作ると話が変わってくると思います。

2017-10-18 12:46 Updated by: None

Comment

doda への返信

メッセージの通知といえば、Banner設定(SSH_MSG_USERAUTH_BANNER)が現状無視されていますね。 これのサポートは有った方がいいかも。

チケット #37544 「SSH_MSG_USERAUTH_BANNERの表示」
https://ja.osdn.net/ticket/browse.php?group_id=1412&tid=37544
ありがとうございます。

2017-10-18 12:50 Updated by: doda

  • Type Update from Bugs to Feature Requests

2017-10-18 15:14 Updated by: maya

Comment

None への返信

A

ログインどうこうではなく、鍵についてのコメントです。 ログイン者全員に表示するわけではないので、ユーザー振り分け設定を作ると話が変わってくると思います。

まず、サーバに関する情報ではなく鍵に関する情報(サーバには設定できない?)を表示したいというのは理解しました。

B

よく知りませんが、ログイン時に利用する鍵の一致確認用にkeyにコメントを明記しておくことは一般出来じゃないんですかね?

秘密鍵にコメントを書くことは一般的だと思います。

これまでの発言からすると、以下のような環境をお使いなのでしょうか。

  • Pageant に複数の鍵が登録されており、サーバ側の authorized_keys にも Pageant に登録されている複数の鍵が登録されている。同じログインユーザに対して同時に複数の鍵が有効で、どの鍵で認証されるかわからない

私はこのような使い方をしたことがないため、また後述のように認証するときに選択できないため、少なくとも私は Pageant に鍵を追加・削除するときにしかコメントを見たことがありませんでした。

C

* 貼り付けてられているログはPuTTYのログイン時のものですか?

はい。ただ、ssh -vvv でも出てきているはずです。

openssh クライアントだと -v(debug1) で表示されるので、意図的に表示しようとしないと見えない情報ですね。

openssh クライアントでは後から確認しようと思っても端末で上の方に流れてしまうことがあります。また、putty でも "Event log" にはサーバホスト鍵の fingerprint は表示されますが、認証に使ったユーザ名や秘密鍵の fingerprint もコメントも表示されません。

これまで他の SSH クライアントを例に出して、その動作に納得されているらしいので、要望しているのは以下の両方に対して「はい」ということでしょうか。

  • 鍵のコメントは ログイン直後に強制的に表示される
  • 鍵のコメントは ログイン直後に表示された後にふたたび見えなくてよい

現状でこうなっていない Tera Term(TTSSH) 側の理由(問題点?)

openssh も putty も認証情報を入力するためのダイアログを持たず、認証情報の入力やレスポンスを CUI に対して行います。つまり(α)ユーザ-SSHクライアント間のやりとりも、(β)ユーザ-SSHサーバ間のやりとりも同じ CUI 上で行われます(αとβが繋がっているので、知識が無いと区別がつきません)。

一方 TTSSH はユーザが認証情報を入力するためのダイアログを提供し(α)、ログインが成功したあとの SSH サーバとのやりとり(β)のみが Tera Term のウィンドウに表示されます。このように他の SSH クライアントとは構造が違い、表示するためにサーバから送られてきた以外の情報を CUI に表示することをしていません。

今の仕組みで(α)の部分をメッセージボックスなどで表示すると、ユーザがメッセージボックスを閉じるまで CUI 部分が使えなくなってしまいます。

Pageant の構造について

Pageant 認証では、どの鍵が使われるのか選択できませんし、使われる順番も選べません。

  • TTSSH は Pageant に鍵一覧を問い合わせる
  • Pageant は何らかの順番で鍵一覧を返してくる(※Pageantの内部的には何かあるのだろうが、制御できない)
  • TTSSH は Pageant が返してきた順番通りにサーバに問い合わる
  • サーバは authorized_keys と照合する
  • サーバは見つかった鍵を「あったよ」と教えてくる
  • TTSSH は「あったよ」と言われた鍵の署名を Pageant に依頼する(★)
  • TTSSH は Pageant から受け取った鍵の署名をサーバに送信する

(cf. Pageant を使った公開鍵認証のシーケンス http://ttssh2.osdn.jp/manual/ja/reference/sourcecode.html#ttssh)

これに関しては cf. #37554 ですが、いわもとさんがチケットを切ったということは何か解決できるアイディアがあるのかもしれませんが、私にはわかりません。

今思い出しましたが、PuTTY-ranvis の Pageant には、問い合わせがあった場合に本当に署名していいのかユーザに確認する機能があります(★の段階でユーザに確認していると思います)。この確認ダイアログでは鍵のコメントも表示されますが、これで「Pageant に複数の有効な鍵がある場合、どの鍵を使うか選ぶ」ということが可能なようですが、用途には合わないでしょうか。

2017-10-20 15:43 Updated by: None

Comment

Pageant に複数の鍵が登録されており、サーバ側の authorized_keys にも Pageant に登録されている複数の鍵が登録されている。
同じログインユーザに対して同時に複数の鍵が有効で、どの鍵で認証されるかわからない

こういった使い方はしていないのですが、同じことで問題は起こると思います。

鍵のコメントは ログイン直後に強制的に表示される
鍵のコメントは ログイン直後に表示された後にふたたび見えなくてよい

そうですね。ログインできた際に対象の公開鍵のコメントが閲覧できるだけでいいと思います。
別件ですが、Puttyのppkは公開鍵(コメント)が含まれているため、パスワードを入力する時点でコメントが出るのは良いと思います。
サーバー側のコメントではないので用途は限られると思いますが。

そもそも今回の件が問題になったのは、新人用に一時的に秘密鍵を作成し提供しており
一定期間後に該当の公開鍵を削除しようとしたためです。
この時のちに自身で作成するようを口頭では伝えましたが、念のためログイン後にも見えるようにしておこうと思ったためです。

表示するためにサーバから送られてきた以外の情報を CUI に表示することをしていません。

この点に違いがある事を理解しました。
ご提案いただいている通り、今回の件でどうしても表示させるのであればダイアログなりGUIを提供せざるを得ないので
定義として提供してもらうのは難しいと思いました。
opensshでは-vなので、結局のところご提案いただいた通り/etc/motdでユーザー別にメッセージを提供するしかないと思います。
https://www.linuxquestions.org/questions/linux-server-73/motd-or-login-banner-per-user-699925/
上記のように /etc/update-motd.d/99-PersonalMessage とかに

  1. if [ -f /etc/motd.d/${USER} ]; then
  2. cat /etc/motd.d/${USER};
  3. fi
という感じにしようと思います。ご教授ありがとうございました。

ログインしていないのでチケット終了できませんので、お手数おかけしますがご対応のほどよろしくお願いいたします。

2017-10-20 16:44 Updated by: doda

Comment

None への返信

そもそも今回の件が問題になったのは、新人用に一時的に秘密鍵を作成し提供しており
一定期間後に該当の公開鍵を削除しようとしたためです。
この時のちに自身で作成するようを口頭では伝えましたが、念のためログイン後にも見えるようにしておこうと思ったためです。

このような用途ならばやはりサーバ側で通知する方がいいと思います。 例えば以下のような設定はどうでしょうか?

/etc/ssh/sshd_config

  1. PermitUserEnvironment yes

~user/.ssh/authorized_keys

  1. environment="RESTRICTED_KEY=yes" ssh-rsa AAA~略~

~user/.bashrc や /etc/profile 等

  1. [[ -n $RESTRICTED_KEY ]] && cat /some/where/restricted-key-notice

対象の鍵を使ったログインの時は環境変数 RESTRICTED_KEY に yes を設定し、 その環境変数が設定されていた時にメッセージを表示するという物です。

2017-10-20 17:29 Updated by: doda

Comment

maya への返信

一方 TTSSH はユーザが認証情報を入力するためのダイアログを提供し(α)、ログインが成功したあとの SSH サーバとのやりとり(β)のみが Tera Term のウィンドウに表示されます。このように他の SSH クライアントとは構造が違い、表示するためにサーバから送られてきた以外の情報を CUI に表示することをしていません。

#37544 でも同じような事を検討していますが、VT ウィンドウに表示する事自体は可能だと思います。ただそれが妥当かは微妙です。

通知方法としてはバルーンチップ表示というのもありますね。これも微妙な部分がありますが。

これに関しては cf. #37554 ですが、いわもとさんがチケットを切ったということは何か解決できるアイディアがあるのかもしれませんが、私にはわかりません。

今のところ特にアイディアはありません。前から思っていた問題を、忘れないように登録しただけという状態です。

2017-10-23 11:14 Updated by: None

Comment

doda への返信

対象の鍵を使ったログインの時は環境変数 RESTRICTED_KEY に yes を設定し、 その環境変数が設定されていた時にメッセージを表示するという物です。

PermitUserEnvironment yesenvironmentの実行を有効化し、その環境変数に合わせたメッセージを処理するということですね。
今回の件ではこれが最も適切だったと思います。

鍵を設定した担当者以外でauthorized_keysにアクセスできない場合や
単純にサーバーについてのメッセージの場合にはmotdを使ってみたいと思います。


Add Comment/Update #37540 (Do not show "comment")

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login