标准的做法是在SSHlogin上通知用户系统属于某人,“你可能会受到起诉”等。但是,这个横幅滚动过去无害。
有什么办法可以让用户回答“你接受吗?/ N”的问题,然后才能继续?
(这个问题不是关于有横幅或确认步骤的法律或实际价值,只是在技术上是可能的)
基于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会话。 主要的缺点是它不会忽略忽略configuration文件的非交互式shell,例如:
$ ssh somehostname ls
提示语的确切用词当然是由你自己决定的,只有在同意的条款副本之后,这个信息才有意义。