FortigateでSSHパスワード認証後のパスワード変更が行えない
c.f. https://twitter.com/kungnoi1219/status/1095309368218636288
Fortigate ではパスワード認証後、該当のユーザのパスワードが expire していた場合に SSH_MSG_USERAUTH_PASSWD_CHANGEREQ を送ってきてパスワードの変更を要求する。
また、admin ユーザのデフォルトのパスワード無しとなっている為、旧パスワードを空とする必要がある。
一方現状のパスワード変更ダイアログでは、旧パスワード、および新パスワードが空なのを許可していないため、上記状況でパスワードの変更が行えなくなっている。
https://osdn.net/projects/ttssh2/scm/svn/blobs/7431/trunk/ttssh2/ttxssh/ssh.c#ln7408
パスワード変更ダイアログでの入力内容チェックを見直す。
パスワード変更ダイアログでは、以下の入力チェックを行っている。
1 はダイアログ表示直後にリターンキーを押した時に閉じないようにする為。旧パスワードが空の時に対応できないため、同様の効果を持つ他の条件に変更する。
旧パスワードは空を指定できるようにする。
新パスワードで空を指定できるようにする事は必要?
必要ないならば、新パスワードが空でない事のみをチェックすればOK。
新パスワードを空に出来るようにする場合は、旧パスワード、および新パスワードの両方が空の時のみはじくというのが考えられる。 空パスワードから空パスワードへの変更はさすがに行える必要は無いと思われる。
2 は新パスワードの入力内容に誤りが無いようにする為。こちらのチェックは必須であり、変更しない。
r7432 で対処。新パスワードに空パスワードを認めない事とした。
c.f. https://twitter.com/kungnoi1219/status/1095309368218636288
Fortigate ではパスワード認証後、該当のユーザのパスワードが expire していた場合に SSH_MSG_USERAUTH_PASSWD_CHANGEREQ を送ってきてパスワードの変更を要求する。
また、admin ユーザのデフォルトのパスワード無しとなっている為、旧パスワードを空とする必要がある。
一方現状のパスワード変更ダイアログでは、旧パスワード、および新パスワードが空なのを許可していないため、上記状況でパスワードの変更が行えなくなっている。
https://osdn.net/projects/ttssh2/scm/svn/blobs/7431/trunk/ttssh2/ttxssh/ssh.c#ln7408
パスワード変更ダイアログでの入力内容チェックを見直す。
入力チェック
パスワード変更ダイアログでは、以下の入力チェックを行っている。
入力チェック1
1 はダイアログ表示直後にリターンキーを押した時に閉じないようにする為。旧パスワードが空の時に対応できないため、同様の効果を持つ他の条件に変更する。
旧パスワードは空を指定できるようにする。
新パスワードで空を指定できるようにする事は必要?
必要ないならば、新パスワードが空でない事のみをチェックすればOK。
新パスワードを空に出来るようにする場合は、旧パスワード、および新パスワードの両方が空の時のみはじくというのが考えられる。 空パスワードから空パスワードへの変更はさすがに行える必要は無いと思われる。
入力チェック2
2 は新パスワードの入力内容に誤りが無いようにする為。こちらのチェックは必須であり、変更しない。