当前位置: 首页 > news >正文

Linux每个用户单独配置ssh,linux – 每个用户的SSH MOTD

您没有指定,您使用的是什么SSH服务器.我假设OpenSSH.

请注意,SSH横幅和MOTD是两个不同的东西.

虽然在SSH终端中几乎无法区分,但它们具有不同的行为,例如,在SFTP客户端中.

MOTD只是在交互式终端上打印的文本.因此,它不会(也不会)被发送到SFTP客户端,例如(稍后会详细介绍).

MOTD被硬编码到OpenSSH中的/ etc / motd.您可以使用PrintMotd指令仅全局打开/关闭它.

但是,在某些Linux系统上,PrintMotd始终处于关闭状态,而PAM堆栈则打印出MOTD(使用pam_motd模块).在这种情况下,您可以通过/etc/pam.d/sshd将其关闭,或者将自定义motd = path指定为模块参数.

SSH标题是一种特殊的SSH 2.0功能,通过特定的SSH数据包(SSH2_MSG_USERAUTH_BANNER)发送.

因此,即使是非终端客户端(如SFTP客户端)也可以对其进行处理并向用户显示.例如,请参阅the banner displays in WinSCP SFTP/SCP client.

SSH横幅可使用Banner和Match指令在sshd_config中按用户(或组或其他标准)进行配置:

Match User username1

Banner /etc/banner_user1

Match User username2

Banner /etc/banner_user2

当然,您也可以使用消息/横幅的自定义实现.只需从全局配置文件脚本中打印使用自定义逻辑选择的消息.

与MOTD一样,这不适用于非交互式会话(SFTP等).

更重要的是,不仅不起作用,还需要确保仅为交互式终端打印消息. OpenSSH为/ etc / motd自动执行的操作.使用仅为交互式终端执行的全局配置文件脚本,或者根据TERM环境变量的值有条件地打印消息.

如果您打印非交互式会话的消息,则会破坏使用严格协议的任何客户端,例如SFTP或SCP,因为客户端会尝试将您的文本消息解释为协议消息,但是会失败.

(我是WinSCP的作者)

相关文章:

  • linux针对内存uce隔离内存,Linux运维知识之在linux系统中,iomem_resource的信息被输出到/proc/iomem中...
  • intellij IDEA里各图标对应的文件类型
  • linux目录中grid,用MongoDB基于GridFS存储文件
  • leetCode-Majority Element
  • linux bind 服务器同步,bind9.7 智能dns主从同步配置
  • nginx-php-fpm
  • linux打包解压工具,打包压缩、解压缩工具详解
  • linux邮件服务器安装与配置过程,Linux操作系统邮件服务器的搭建过程解析
  • Java提高十五:容器元素比较ComparableComparator深入分析
  • linux addr2line 用法,addr2line的用法
  • svn项目添加到tomcat后,tomcat无法打开问题解决
  • linux imq原理图,(linux内核IMQ源码实现分析.doc
  • rman从aix到linux跨平台恢复,利用RMAN跨平台迁移数据库
  • Linux权限分析
  • tcp连接超时断开linux,linux – FTP’ing大文件时如何防止TCP连接超时?
  • 时间复杂度分析经典问题——最大子序列和
  • 【mysql】环境安装、服务启动、密码设置
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 3.7、@ResponseBody 和 @RestController
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • express.js的介绍及使用
  • golang 发送GET和POST示例
  • javascript从右向左截取指定位数字符的3种方法
  • JavaScript设计模式系列一:工厂模式
  • Java超时控制的实现
  • java第三方包学习之lombok
  • Magento 1.x 中文订单打印乱码
  • Spring Cloud Feign的两种使用姿势
  • springMvc学习笔记(2)
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 目录与文件属性:编写ls
  • 首页查询功能的一次实现过程
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 原生 js 实现移动端 Touch 滑动反弹
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​第20课 在Android Native开发中加入新的C++类
  • # include “ “ 和 # include < >两者的区别
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #QT(智能家居界面-界面切换)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转载)从 Java 代码到 Java 堆
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net MySql
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据