Do not show "comment"
メッセージの通知といえば、Banner設定(SSH_MSG_USERAUTH_BANNER)が現状無視されていますね。 これのサポートは有った方がいいかも。
maya への返信
* 貼り付けてられているログはPuTTYのログイン時のものですか?
はい。ただ、ssh -vvv でも出てきているはずです。
* 表示されているのは「Pageantに登録されていて、認証に使用された秘密鍵のコメント」のようですが、秘密鍵のコメントに「ログイン前の注意事項」を書いているんですか?
ログインどうこうではなく、鍵についてのコメントです。
* これが表示されるのは認証が通った後だと思いますが、「ログイン*前*の注意事項」が認証後に表示されて大丈夫なんですか?
そういう意味で認証後じゃ遅いですね;
* 「Pageantに登録されていて、認証に使用された秘密鍵のコメント」を「Help」-「About TTSSH」のダイアログに表示することはできるかもしれませんが、「無視されてました」ということはPuTTYのようにログイン直後にVTWindowに表示されなければ意味がないということですか?
よく知りませんが、ログイン時に利用する鍵の一致確認用にkeyにコメントを明記しておくことは一般出来じゃないんですかね? pc001@fuga.comとかhoge-san@fuga.comとかつけてました。
* あなたはコメント付きの秘密鍵を生成して他の利用者に配布していて、サーバにログインした直後に利用者にメッセージを読ませたいということですか?だとしたらサーバの/etc/motdや~/.bashrcにそのメッセージを書くことはできませんか?
ログイン者全員に表示するわけではないので、ユーザー振り分け設定を作ると話が変わってくると思います。
doda への返信
メッセージの通知といえば、Banner設定(SSH_MSG_USERAUTH_BANNER)が現状無視されていますね。 これのサポートは有った方がいいかも。
チケット #37544 「SSH_MSG_USERAUTH_BANNERの表示」
https://ja.osdn.net/ticket/browse.php?group_id=1412&tid=37544
ありがとうございます。
None への返信
ログインどうこうではなく、鍵についてのコメントです。 ログイン者全員に表示するわけではないので、ユーザー振り分け設定を作ると話が変わってくると思います。
まず、サーバに関する情報ではなく鍵に関する情報(サーバには設定できない?)を表示したいというのは理解しました。
よく知りませんが、ログイン時に利用する鍵の一致確認用にkeyにコメントを明記しておくことは一般出来じゃないんですかね?
秘密鍵にコメントを書くことは一般的だと思います。
これまでの発言からすると、以下のような環境をお使いなのでしょうか。
私はこのような使い方をしたことがないため、また後述のように認証するときに選択できないため、少なくとも私は Pageant に鍵を追加・削除するときにしかコメントを見たことがありませんでした。
* 貼り付けてられているログはPuTTYのログイン時のものですか?
はい。ただ、ssh -vvv でも出てきているはずです。
openssh クライアントだと -v(debug1) で表示されるので、意図的に表示しようとしないと見えない情報ですね。
openssh クライアントでは後から確認しようと思っても端末で上の方に流れてしまうことがあります。また、putty でも "Event log" にはサーバホスト鍵の fingerprint は表示されますが、認証に使ったユーザ名や秘密鍵の fingerprint もコメントも表示されません。
これまで他の SSH クライアントを例に出して、その動作に納得されているらしいので、要望しているのは以下の両方に対して「はい」ということでしょうか。
openssh も putty も認証情報を入力するためのダイアログを持たず、認証情報の入力やレスポンスを CUI に対して行います。つまり(α)ユーザ-SSHクライアント間のやりとりも、(β)ユーザ-SSHサーバ間のやりとりも同じ CUI 上で行われます(αとβが繋がっているので、知識が無いと区別がつきません)。
一方 TTSSH はユーザが認証情報を入力するためのダイアログを提供し(α)、ログインが成功したあとの SSH サーバとのやりとり(β)のみが Tera Term のウィンドウに表示されます。このように他の SSH クライアントとは構造が違い、表示するためにサーバから送られてきた以外の情報を CUI に表示することをしていません。
今の仕組みで(α)の部分をメッセージボックスなどで表示すると、ユーザがメッセージボックスを閉じるまで CUI 部分が使えなくなってしまいます。
Pageant 認証では、どの鍵が使われるのか選択できませんし、使われる順番も選べません。
(cf. Pageant を使った公開鍵認証のシーケンス http://ttssh2.osdn.jp/manual/ja/reference/sourcecode.html#ttssh)
これに関しては cf. #37554 ですが、いわもとさんがチケットを切ったということは何か解決できるアイディアがあるのかもしれませんが、私にはわかりません。
今思い出しましたが、PuTTY-ranvis の Pageant には、問い合わせがあった場合に本当に署名していいのかユーザに確認する機能があります(★の段階でユーザに確認していると思います)。この確認ダイアログでは鍵のコメントも表示されますが、これで「Pageant に複数の有効な鍵がある場合、どの鍵を使うか選ぶ」ということが可能なようですが、用途には合わないでしょうか。
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
とかに
という感じにしようと思います。ご教授ありがとうございました。
None への返信
そもそも今回の件が問題になったのは、新人用に一時的に秘密鍵を作成し提供しており
一定期間後に該当の公開鍵を削除しようとしたためです。
この時のちに自身で作成するようを口頭では伝えましたが、念のためログイン後にも見えるようにしておこうと思ったためです。
このような用途ならばやはりサーバ側で通知する方がいいと思います。 例えば以下のような設定はどうでしょうか?
対象の鍵を使ったログインの時は環境変数 RESTRICTED_KEY に yes を設定し、 その環境変数が設定されていた時にメッセージを表示するという物です。
maya への返信
一方 TTSSH はユーザが認証情報を入力するためのダイアログを提供し(α)、ログインが成功したあとの SSH サーバとのやりとり(β)のみが Tera Term のウィンドウに表示されます。このように他の SSH クライアントとは構造が違い、表示するためにサーバから送られてきた以外の情報を CUI に表示することをしていません。
#37544 でも同じような事を検討していますが、VT ウィンドウに表示する事自体は可能だと思います。ただそれが妥当かは微妙です。
通知方法としてはバルーンチップ表示というのもありますね。これも微妙な部分がありますが。
これに関しては cf. #37554 ですが、いわもとさんがチケットを切ったということは何か解決できるアイディアがあるのかもしれませんが、私にはわかりません。
今のところ特にアイディアはありません。前から思っていた問題を、忘れないように登録しただけという状態です。
doda への返信
対象の鍵を使ったログインの時は環境変数 RESTRICTED_KEY に yes を設定し、 その環境変数が設定されていた時にメッセージを表示するという物です。
PermitUserEnvironment yesでenvironmentの実行を有効化し、その環境変数に合わせたメッセージを処理するということですね。
今回の件ではこれが最も適切だったと思います。
鍵を設定した担当者以外でauthorized_keysにアクセスできない場合や
単純にサーバーについてのメッセージの場合にはmotdを使ってみたいと思います。
SSHログイン時の公開鍵に設定されているコメントの表示箇所がない。
どのカギを使っての認証が開始するかわからないので、 せっかくログイン前の注意事項をコメントに書いてあっても無視されてました・・・。
Using username "hoge-user".
Authenticating with public key "Public key comment!!" from agent
どうかご対応願います・・・