SSH 横幅:请求确认

SSH 横幅:请求确认

在 SSH 登录时放置一个横幅,通知用户系统属于某人,“您可能会受到起诉”等,是标准做法。但是,这个横幅无害地滚动过去。

有没有什么方法可以要求用户回答“你接受吗?是/否”这个问题,然后才能继续?

(这个问题不涉及横幅或确认步骤的法律或实际价值,而只是技术上是否可行)

答案1

根据 serverliving.com 的评论,我通过编写一个文件解决了这个问题/etc/profile.d/confirm.sh

#!/bin/bash

if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
        while true; do
                read -p "Do you accept the terms and conditions? [y/N] " yn
                case $yn in
                        [Yy]* ) break ;;
                        [Nn]* ) exit 1 ;;
                esac
        done
fi

这在任何 SSH 会话中都会触发,但非 SSH 会话中不会触发。主要缺点是它没有在忽略配置文件的非交互式 shell 上触发,例如:

$ ssh somehostname ls

当然,提示的具体措辞取决于您,并且只有在同意条款副本后该消息才有意义。

相关内容