
おそらく、誰もが既に大きくて複雑なパスワードを持っていることが常に良いことを知っています。 多くの人はパスワードマネージャーについても知っており、最も重要なことは、パスワードマネージャーに情報を安全に保存できることです。
仕事の性質上、多くのパスワードやその他の機密情報を記録して保存する必要があることが多いので、無料ライセンスのパスワードマネージャーであるKeepass2を使用します。 他の機能に対するその機能と利点については説明しませんが、これについてはすでに何度も説明しました。 誰もがもっと知りたいなら、ここにいくつかのリンクがあります: wiki 、 レビュー記事 、他との比較: 1 2 。
代わりに、その興味深い機能の1つについてお話したいと思います。
この機能は「URLオーバーライド」と呼ばれ、レコードに関連付けられたプログラムを実行し、Keepassから認証データを直接送信する機能を表します。
たとえば、リモートサーバーに接続するためのアカウントのリストをkeepassに保存し、ある時点で必要なアカウントを選択し、Ctrl + Uを押すだけでリモート接続クライアントを起動し、すぐにサーバーにアクセスできます。
これは非常に便利です。ログインとパスワードはすべて保存されるわけではありませんが、keepassデータベースで安全に暗号化され、接続時にのみクライアントプログラムに送信されます。
Keepassをすべてのリモートサーバーへの単一のエントリポイントとして使用するという考え方です。

認めざるを得ません。最初はLinuxでkeepasを設定することについてのみ記事を書くつもりでしたが、これを書いている間、Windowsユーザーにも十分な資料が蓄積されました。
私は、このような面白い素材を使って、より人気のあるOSをほとんどのユーザーから奪わないことにしました。
各プロトコルについて、WindowsとLinuxの両方で機能するコマンドを指定しました
それでは始めましょう:
レコードを作成する
keepassがエントリがどのプロトコルに対応するかを知るためには、 rdp://server
、 ssh://server
、 ftp://server
ようなリンクを使用する必要がありftp://server
Keepass2のセットアップ
keepassがこれらのプロトコルに対してどのプログラムを実行する必要があるかを知るには、リンクハンドラーを構成する必要があります。
これを行うには、 Tools --> Options --> Integraion --> URL Overrides...
し、プロトコルを設定します。
Ssh
[windows] PuTTY
- スキーム:
ssh
- コマンド:
cmd://"{ENV_PROGRAMFILES_X86}\PuTTY\putty.exe" -ssh "{USERNAME}@{URL:HOST}" -P {URL:PORT} -pw "{PASSWORD}"
[linux] OpenSSHクライアント
- スキーム:
ssh
コマンド:
cmd://xterm -e sshpass -p {PASSWORD} ssh -o StrictHostKeyChecking=no {USERNAME}@{BASE:RMVSCM}
より安全なオプション:
cmd://bash -c 'FILE=$(mktemp) && chmod 600 $FILE && echo {PASSWORD} > $FILE ; xterm -e sshpass -f $FILE ssh -o StrictHostKeyChecking=no {USERNAME}@{BASE:RMVSCM}; rm -f $FILE'
sshpass
パッケージもインストールする必要があります
xterm
代わりに、お気に入りのターミナルエミュレータに置き換えることができます
Rdp
[windows] MSTSC
- スキーム:
rdp
- コマンド:
cmd://cmd /c "cmdkey /generic:TERMSRV/{URL:HOST} /user:{USERNAME} /pass:{PASSWORD} && mstsc /v:{BASE:RMVSCM} && cmdkey /delete:TERMSRV/{URL:HOST}"
bitcollectors.comでValiantを、habrahabr.ruでDeWhiteを解決していただきありがとうございます
[linux]レミーナ
- スキーム:
rdp
コマンド:
cmd://bash -c "FILE=/tmp/connect.remmina ; echo -en '[remmina]\nname={TITLE}\nprotocol=RDP\nserver={BASE:RMVSCM}\nscale=1\nviewmode=1\nusername={USERNAME}\npassword='`remmina-encode-password.py {PASSWORD}` > $FILE ; remmina -c $FILE ; rm -f $FILE"
より安全なオプション:
cmd://bash -c "export DIR=/tmp/remmina; mkdir -p $DIR; chmod 700 $DIR; export FILE=$(mktemp -p $DIR XXXXXXXXXX --suffix=.remmina); echo -e '[remmina]\nname={TITLE}\nprotocol=RDP\nserver={BASE:RMVSCM}\nscale=1\nviewmode=1\nusername={USERNAME}\npassword='`remmina-encode-password.py {PASSWORD}` > $FILE ; nohup remmina -c $FILE &"
また、小さなヘルパースクリプトをインストールする必要があります。
curl -o /usr/local/bin/remmina-encode-password.py https://raw.githubusercontent.com/kvaps/keepass2-url-overriddes/master/remmina/remmina-encode-password.py chmod +x /usr/local/bin/remmina-encode-password.py
Vnc
[windows] RealVNC
- スキーム:
vnc
- コマンド:
cmd://java -jar "{ENV_PROGRAMFILES}\tightvnc-jviewer.jar" -user="{USERNAME}" -password="{PASSWORD}" {BASE:RMVSCM}
tightvnc-jviewer.jar
をC:\Program Files\tightvnc-jviewer.jar
ます。
[linux]レミーナ
- スキーム:
vnc
コマンド:
cmd://bash -c "FILE=/tmp/connect.remmina ; echo -en '[remmina]\nname={TITLE}\nprotocol=VNC\nserver={BASE:RMVSCM}\nscale=1\nviewmode=1\nusername={USERNAME}\npassword='`remmina-encode-password.py {PASSWORD}` > $FILE ; remmina -c $FILE ; rm -f $FILE"
より安全なオプション:
cmd://bash -c "export DIR=/tmp/remmina; mkdir -p $DIR; chmod 700 $DIR; export FILE=$(mktemp -p $DIR XXXXXXXXXX --suffix=.remmina); echo -e '[remmina]\nname={TITLE}\nprotocol=VNC\nserver={BASE:RMVSCM}\nscale=1\nviewmode=1\nusername={USERNAME}\npassword='`remmina-encode-password.py {PASSWORD}` > $FILE ; nohup remmina -c $FILE &"
上記に書いた小さなヘルパースクリプトがまだ必要です。
curl -o /usr/local/bin/remmina-encode-password.py https://raw.githubusercontent.com/kvaps/keepass2-url-overriddes/master/remmina/remmina-encode-password.py chmod +x /usr/local/bin/remmina-encode-password.py
サンバ
[windows]エクスプローラー
- スキーム:
smb
- コマンド:
cmd://cmd /c "net use "{BASE:RMVSCM}" /user:"{USERNAME}" "{PASSWORD}" && start \\{BASE:RMVSCM}"
[linux] Nautilus / Thunar / Dolphin
- スキーム:
smb
コマンド:
cmd://bash -c "echo -e '\n{PASSWORD}' | gvfs-mount 'smb://{USERNAME}@{BASE:RMVSCM}' ; nautilus 'smb://{USERNAME}@{BASE:RMVSCM}'"
より安全なオプション:
cmd://bash -c "echo -e '\n{PASSWORD}' | gvfs-mount 'smb://{USERNAME}@{BASE:RMVSCM}' ; nohup nautilus 'smb://{USERNAME}@{BASE:RMVSCM}' &"
ThunarとDolphinの場合、コマンドは同じになります;
nautilus
をthunar
またはdolphin
置き換えてください。
FTP
[windows] FileZilla FTPクライアント
- スキーム:
ftp
- コマンド:
cmd://"{ENV_PROGRAMFILES_X86}\FileZilla FTP Client\filezilla.exe" 'ftp://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'
[windows] Windowsエクスプローラー
- スキーム:
ftp
- コマンド:
cmd://"explorer.exe" 'ftp://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'
[linux] FileZilla FTPクライアント
- スキーム:
ftp
- コマンド:
cmd://filezilla 'ftp://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'
[linux] Nautilus / Thunar / Dolphin
- スキーム:
smb
コマンド:
cmd://bash -c "echo -e '\n{PASSWORD}' | gvfs-mount 'ftp://{USERNAME}@{BASE:RMVSCM}' ; nautilus 'ftp://{USERNAME}@{BASE:RMVSCM}'"
より安全なオプション:
cmd://bash -c "echo -e '\n{PASSWORD}' | gvfs-mount 'ftp://{USERNAME}@{BASE:RMVSCM}' ; nohup nautilus 'ftp://{USERNAME}@{BASE:RMVSCM}' &"
ThunarとDolphinの場合、コマンドは同じになります;
nautilus
をthunar
またはdolphin
置き換えてください。
Teamviewer
[windows] TeamViewer
- スキーム:
teamviewer
- コマンド:
cmd://"{ENV_PROGRAMFILES_X86}\TeamViewer\TeamViewer.exe" -i "{USERNAME}" --Password "{PASSWORD}"
[linux] TeamViewer
- スキーム:
teamviewer
- コマンド:
cmd://teamviewer -i "{USERNAME}" --Password "{PASSWORD}"
Winbox
[windows] Winbox
- スキーム:
winbox
- コマンド:
cmd://{ENV_PROGRAMFILES_X86}\winbox.exe '{BASE:RMVSCM}' '{USERNAME}' '{PASSWORD}'
winbox.exe
をC:\Program Files (x86)\winbox.exe
ます。
[linux] winbox
- スキーム:
winbox
- コマンド:
cmd://winbox '{BASE:RMVSCM}' '{USERNAME}' '{PASSWORD}'
AURのwinboxパッケージを使用しています。
シスコ
[windows] PuTTY
- スキーム:
cisco
コマンド:
cmd://{ENV_PROGRAMFILES_X86}\scriptsdir\Connector_Cisco.vbs "{S:lan}" "{USERNAME}" "{PASSWORD}" "{S:enable}"
Connector_Cisco.vbs自体もダウンロードします
パスに沿って保存します:C:\Program Files (x86)\Connector_Cisco.vbs
ソリューションとスクリプトは、 thebra1がhabrahabr.ruで親切に提供してくれました。
おわりに
たくさんの例があると思います。 おそらくそれだけです。
これで、目的のエントリを選択してCtrl + Uを押すと、すぐに目的の場所に接続できます。 また、他の場所にパスワードを保存する必要はありません。
よりエキゾチックな場合は、いつでも独自のハンドラを記述できます。必要なプログラムの起動オプションを見つけて、コマンドに反映するだけです。
いくつかの関連リンク:
提案/追加があれば、コメントまたはGithubに書いてください。
ご清聴ありがとうございました。