Published On: 2016-07-09|Last Updated: 2021-06-17|Categories: KeePass, Security|Tags: , , , , |

KeePass には URL Override とそこで値を参照する Placeholders という機能がありますがシンプルな実装なので頭をひねらないといけません。

デフォルト値を設定する

デフォルト値を設定したい場合はエントリーの値が空であっても placeholder が空でないものがあるので注意が必要です:

{URL}, {BASE}keepass-url-override-test:keepass-url-override-test:/keepass-url-override-test://
{URL:SCM}, {BASE:SCM}keepass-url-override-testkeepass-url-override-testkeepass-url-override-test
{URL:PORT}, {BASE:PORT}-1-1-1
{URL:PATH}, {BASE:PATH}
//
{S:Name}{S:Name}{S:Name}{S:Name}

サンプル

コマンドラインにパスワードが残るのでまずい場合もありますがしゃーない。

putty

ssh:

cmd://"{APPDIR}\putty.exe" -ssh "{USERNAME}@{BASE:HOST}" -P {BASE:PORT} -pw "{PASSWORD}" {T-REPLACE-RX:/{S:putty}/\{S:putty\}//}

Save additional command line arguments in field named “putty”.

ssh with ppk:

cmd://powershell -NoProfile -WindowStyle Hidden -Command "$uri = [uri]\"{URL}\"; $tmp = New-TemporaryFile; [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"{T-CONV:/{S:ppk}/Base64/}\")) | Out-File -encoding ASCII $tmp.FullName; &putty {USERNAME}@$($uri.Host) -P $(If ($uri.Port) { $uri.Port } else { '22' }) -i $tmp.FullName; Start-Sleep -s 15; Remove-Item $tmp.FullName -Force"

Save ppk’s file content in field named “ppk”.

rdp

cmd://cmd /c "cmdkey /generic:TERMSRV/{BASE:HOST} /user:{USERNAME} /pass:{T-REPLACE-RX:/{PASSWORD}/(.)/^$1/} && start /b mstsc /v:{URL:RMVSCM} && timeout /t 15 /nobreak && cmdkey /delete:TERMSRV/{BASE:HOST}"

FileZilla

https://wiki.filezilla-project.org/Command-line_arguments_%28Client%29

エスケープに対応していないので、使用されている文字によっては認証情報が正しくてもコマンドを正しく構築できず、接続できないことがあります。
https://forum.filezilla-project.org/viewtopic.php?t=23055

ftp:

cmd://"%ProgramFiles%\FileZilla FTP Client\filezilla.exe" {URL:SCM}://"{USERNAME}":"{PASSWORD}"@{URL:HOST}:{T-REPLACE-RX:/{BASE:PORT}/^-1$/21/}

ftps:

cmd://"%ProgramFiles%\FileZilla FTP Client\filezilla.exe" {URL:SCM}://"{USERNAME}":"{PASSWORD}"@{URL:HOST}:{T-REPLACE-RX:/{BASE:PORT}/^-1$/990/}

ftpes:

cmd://"%ProgramFiles%\FileZilla FTP Client\filezilla.exe" {URL:SCM}://"{USERNAME}":"{PASSWORD}"@{URL:HOST}:{T-REPLACE-RX:/{BASE:PORT}/^-1$/21/}

sftp:

cmd://"%ProgramFiles%\FileZilla FTP Client\filezilla.exe" {URL:SCM}://"{USERNAME}":"{PASSWORD}"@{URL:HOST}:{T-REPLACE-RX:/{BASE:PORT}/^-1$/22/}

WinSCP

https://winscp.net/eng/docs/commandline

https://winscp.net/eng/docs/session_url#special

ftp:

cmd://"{ENV_PROGRAMFILES_X86}\WinSCP\WinSCP.exe" "{URL:SCM}://{T-CONV:/{USERNAME}/Uri/}:{T-CONV:/{PASSWORD}/Uri/}@{URL:HOST}:{T-REPLACE-RX:/{BASE:PORT}/^-1$/21/}"

WinSCP で FTP + SSL が安定しないことがあります。

ftps:

cmd://"{ENV_PROGRAMFILES_X86}\WinSCP\WinSCP.exe" "{URL:SCM}://{T-CONV:/{USERNAME}/Uri/}:{T-CONV:/{PASSWORD}/Uri/}@{URL:HOST}:{T-REPLACE-RX:/{BASE:PORT}/^-1$/990/}"

ftpes:

cmd://"{ENV_PROGRAMFILES_X86}\WinSCP\WinSCP.exe" "ftp://{T-CONV:/{USERNAME}/Uri/}:{T-CONV:/{PASSWORD}/Uri/}@{URL:HOST}:{T-REPLACE-RX:/{BASE:PORT}/^-1$/21/}" /explicit

See

関連