coo*_*j86 9 security ssh password
我想测试 ssh 服务器是否允许密码并立即关闭连接而不实际尝试登录。
像这样的东西:
allows_password=$(ssh --some-option example.com)
if [ -z "$allows_password" ]; then
echo "Insecure Server Options"
else
echo "Insecure Password Access is not Allowed, Great!"
fi
Run Code Online (Sandbox Code Playgroud)
我实际上以前做过一次,但我找不到旧的脚本或文档。失落的一天。:-/
coo*_*j86 11
我找到了我的旧脚本:
ssh -v -n \
-o Batchmode=yes \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
DOES_NOT_EXIST@localhost 2>&1 | grep password
Run Code Online (Sandbox Code Playgroud)
该-o Batchmode=yes选项会导致非交互模式,在这种模式下,回退到密码会导致失败。
这-v会导致显示身份验证方法(除其他外)。
的-n原因,ssh到不打开外壳(常与施工中),在这种情况下将导致其立即退出(以防万一你要连接到一个蜜罐或类似serveo.net一种服务,让客户无需认证)
-o StrictHostKeyChecking=no并-o UserKnownHostsFile=/dev/null自动接受主机而不将其写入 known-hosts 文件。
2>&1将调试消息 (stderr) 转发到日志记录系统 (stdout) 以便grep可以发挥其魔力
如果对某些用户启用了密码身份验证,据我所知,它将显示为对所有用户启用(但在提示后失败)。我怀疑这是为了让您无法确定系统上存在用户。
这样我就不会再丢失它了:https : //coolaj86.com/articles/testing-if-ssh-allows-passwords/