KeePass には URL Override とそこで値を参照する Placeholders という機能がありますがシンプルな実装なので頭をひねらないといけません。
Table of Contents
デフォルト値を設定する
デフォルト値を設定したい場合はエントリーの値が空であっても placeholder が空でないものがあるので注意が必要です:
{URL}, {BASE} | keepass-url-override-test: | keepass-url-override-test:/ | keepass-url-override-test:// |
---|---|---|---|
{URL:SCM}, {BASE:SCM} | keepass-url-override-test | keepass-url-override-test | keepass-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