Skip to content

用 KeePass 实现远程控制的自动登录

我经常要登录多个远程系统进行维护,输入用户名和密码是一件很烦的事情,但如果将用户密码保存在远程控制软件中又会造成安全隐患,尤其是如果该远程控制软件是放在 U 盘上的便携版,一旦 U 盘遗失,可能会被别人轻易侵入系统,我的几个 Linux 帐号都有 sudo 权限,被窃取后基本上就等同 root 帐号被攻克了。

比较安全的自动登录可以用 KeePass 配合适当的远程控制软件来实现。

首先远程控制软件必须允许在命令行设定远程登录的信息,如远程系统IP/域名,端口,用户名,密码等等。我最常用的几款都可以:

登录 SSH 服务器使用 putty:putty.exe -ssh $username@$host:$port -pw $password

登录 SFTP 服务器使用 winscp:winscp.exe” sftp://$username:$password@$host:$port

远程桌面使用 UltraVNC viewer:vncviewer.exe” $host:$port -password $password

远程桌面使用 TeamViewer:Teamviewer.exe” -i $ID -P $password

如果想在 U 盘上使用 KeePass 便携版的话,这几款远程控制软件都有便携版或者便携的替代版,如 putty 可以用 kitty 来替代。

这里用 KeePass 1.14 中的 URL field 配合 cmd:// 链接来启上述动远程控制软件,传入登录信息,就可以无需输入用户名/密码自动登录到远程系统上了。由于远程系统的登录信息是由 KeePass 加密保存的,远程软件中可完全不需要保存远程系统的信息(可手动逐一删除目前已经保存的信息),并且设置不要记录登录历史,这样即使把 KeePass + 远程控制软件便携版保存在 Dropbox 这样的网盘上也可以放心了。

假定我们把远程软件便携版(kitty.exe, winscp.exe, vncviewer.exe, teamviewer.exe)保存在 KeePass 的目录下(和 KeePass.exe 在同一目录),则 URL field 和相应 field 可以这样设置:

kitty 自动登录 URL:

cmd://”{APPDIR}\kitty.exe” -ssh {USERNAME} -pw {PASSWORD}

(”User name” field: username@host:port, “Password” field: password)

winscp 自动登录 URL:

cmd://”{APPDIR}\winscp.exe” sftp://{USERNAME}:{PASSWORD}@{TITLE}

(”Title” field: host:port, “User name” field: username, “Password” field: password)

UltraVNC viewer 自动登录 URL:

cmd://”{APPDIR}\vncviewer.exe” {USERNAME} -password {PASSWORD}

(”User name” field: host:port, “Password” field: password)

TeamViewer 自动登录 URL:

cmd://”{APPDIR}\Teamviewer.exe” -i “{USERNAME}” -P {PASSWORD}

(”User name” field: ID, “Password” field: password)

这种自动登录目前的局限是:

1、SSH (putty, winscp) 还无法用密钥登录,KeePass 1.14 可考虑用 “Notes” field 保存 private key,然后写一个 batch,把 {NOTES} 保存成一个临时文件,用 -i 传给 putty 登录后马上删除;KeePass 2.0 则可以使用 custom field;

2、SSH (putty, winscp) 会记录远程系统的IP或域名及公钥(但这些信息只要用 putty/winscp 连接一次 SSH 服务器就能取得)


编辑:听说 KeePass 2.x 可以保存文件附件了,那么,使用密钥登录的问题也就解决了。


One Trackback/Pingback

  1. topo on 03-八-10 at 11:32 上午

    Topo…

    [...] something about topo[...]…

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*


为了防止恶意的垃圾评论脚本,请输入以下图片里面的数学方程式的答案。
防垃圾评论问题