如何禁用安全警报,如“服务器的主机密钥未缓存在注册表中,等等”、“主机身份已更改,存在中间人”等
在云托管环境中,它们是不必要的,因为云托管环境中会出现大量新的服务器实例。而且,如果最终在同一 IP 上出现新的服务器,这也是很正常的。
在 Linux ssh 客户端中,我使用 .bashrc 中的以下几行完成了此操作:
别名 ssh='ssh -o “StrictHostKeyChecking no” -o “UserKnownHostsFile=/dev/null” -o “CheckHostIP=no”' 别名 scp='scp -o “StrictHostKeyChecking no” -o “UserKnownHostsFile=/dev/null” -o “CheckHostIP=no”'但是如何在 Putty 中做到这一点?
答案1
我使用 AutoHotkey 创建一个在后台运行的脚本,扫描任何我不关心的特定警告弹出窗口,并自动关闭它们。
#Persistent
SetTimer, ClosePopups, 100 ; Check every 1/10 of a second
return
ClosePopups:
; Putty popup definition
IfWinExist, PuTTY Security Alert
{
WinActivate PuTTY Security Alert
Send !y ; Press Alt+Y
}
; Here's another example of a popup definition, for reference
IfWinExist, Cisco AnyConnect Secure Mobility Client
{
WinGetText, output, Cisco AnyConnect Secure Mobility Client
if output contains Connecting to this server may result in a severe security compromise
{
WinActivate Cisco AnyConnect Secure Mobility Client
Send {Tab}{Space}
}
}
return
答案2
那里似乎没有任何希望:
没有,不会有。即使你自己写并把补丁发给我们,我们也不会接受。
答案3
我找到了解决这个问题的方法。
每次您第一次通过 Putty 登录任何机器时,您都会收到该安全消息。单击“是”,它会将服务器的主机密钥缓存在您的系统中。如果您下次以同一用户身份登录,则不会显示警报。
因此诀窍是:
报到应用程序数据\本地文件夹
主机密钥缓存后,您将在以下位置看到下面提到的文件(.DAT 和 .RND):
C:\Users\你的用户\Appdata\Local
GDIPFONTCHEV1文件和PUTTY 目录
现在,只需将这两个文件复制并粘贴到您想要登录的每个用户所在的同一位置 C:\Users\Another_User\Appdata\Local
这对我有用。
答案4
特定用户接受的主机密钥存储在注册表中。当前用户接受密钥后,可以通过从当前用户导出注册表项、修改新用户的路径,然后将其重新导入,使其他人可以使用这些密钥。
使用 REGEDIT,导出:
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys]
打开包含导出的 .reg 文件
更改所有实例
HKEY_CURRENT_USER
到
HKEY_USERS\S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx
S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx
相关用户的 SID 在哪里。
运行 .reg 文件将其导入回该用户的注册表:
[HKEY_USERS\S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx\Software\SimonTatham\PuTTY\SshHostKeys]
注:用户名/SID 映射可在以下位置找到:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]