在任何 shell 的远程登录上运行命令

在任何 shell 的远程登录上运行命令

认为:

  • 您有权ssh访问服务器
  • 你不知道你有哪个 shell(魔鬼会在你下次登录时改变它)
  • foo您希望每次登录时都运行该命令(即使是非交互方式)
  • 您希望每次登录时都bar设置环境变量(即使是非交互方式)quux

特别是你可以不是认为:

  • 操作系统
  • /bin/sh除了可用的外壳之外

http://mywiki.wooledge.org/DotFiles(远程非登录非交互式 shell)和是否可以将“ssh <host> <command>”配置为始终加载服务器端启动文件?很好地涵盖了 Bash 的这一点,但似乎忽略了魔鬼可能会将您的登录 shell 更改为 Bash 以外的其他内容。

ksh、bash、ash、dash、csh、tcsh、zsh 的类似技术有哪些? (/bin/sh从登录 shell 生成被认为是魔鬼的作弊,因此不是一个可接受的答案)。

答案1

你可以尝试这样的事情:

sshd_配置:

Match User ed
    ForceCommand "bash -c ";export THING=a;/bin/bash -i""

这是次优的,我确信它可以打高尔夫球,但我将把它作为练习留给读者。

相关内容