You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Debian SSH服务器特定用户SSH登录后显示消息的配置问题

Debian SSH服务器特定用户SSH登录后显示消息的配置问题

嗨,我明白你的困扰——MOTD确实会在所有登录场景(包括本地终端)显示消息,这显然不是你想要的。针对特定用户仅在SSH登录后展示专属消息,这里有两个实用的方案,你可以根据需求选择:

方案一:利用用户shell配置文件(推荐,无副作用)

这个方法通过判断登录环境变量,只在SSH登录时触发消息,完全不影响本地登录或scp这类非交互式操作:

  1. 切换到目标用户的账号,执行 su - your_target_user
  2. 编辑该用户的bash启动配置文件:nano ~/.bashrc
  3. 在文件末尾添加以下代码,替换成你想要的消息内容:
# 仅当SSH登录时显示专属消息
if [ -n "$SSH_CONNECTION" ]; then
    echo "欢迎使用SSH登录!这里是专属你的提示消息~"
    # 如果你想读取预定义的消息文件,也可以写成:cat ~/.ssh_welcome_message
fi
  1. 保存退出(按Ctrl+O回车,再Ctrl+X),下次该用户通过SSH登录时,就会看到你设置的消息了。

方案二:通过SSH服务配置实现(注意非交互式操作影响)

如果你想通过SSH服务层面控制,可以修改sshd的配置文件,但这个方法会影响scp、sftp这类非交互式命令的执行,需要谨慎使用:

  1. 编辑SSH服务的主配置文件:nano /etc/ssh/sshd_config
  2. 在文件末尾添加以下规则,替换your_target_user为指定用户名,消息内容自定义:
Match User your_target_user
    ForceCommand echo "这是SSH登录专属消息"; exec $SHELL
  1. 保存退出后,重启SSH服务使配置生效:systemctl restart sshd

这个方案的原理是强制该用户登录时先执行消息输出命令,再启动shell,但如果用户需要用scp传输文件,可能会因为ForceCommand的存在而失败,所以更推荐第一种方案。

备注:内容来源于stack exchange,提问作者qian

火山引擎 最新活动