linux - 通过 ssh 声明变量
问题描述
是否可以通过 ssh 声明一个全局变量,以便可以从其他 ssh 连接访问它?例如 ssh firas@10.0.0.1 "x=10" 另一个用户 x 可以通过 ssh 到机器来回显值 x=10 ssh x@10.0.0.1 "echo $x"
解决方案
不是直接的,但如果你使用OpenSSH
. 首先,
PermitUserEnvironment
在sshd
配置中启用并重新启动sshd
。请注意可能的安全隐患,如下所述man sshd_config
:
PermitUserEnvironment
Specifies whether ~/.ssh/environment and environment= options in ~/.ssh/authorized_keys are processed
by sshd(8). The default is no. Enabling environment processing may enable users to bypass access
restrictions in some configurations using mechanisms such as LD_PRELOAD.
现在你保存一个新的变量,~/.ssh/environment
就像这样:
ssh localhost 'echo variable=new-value-of-the-var > ~/.ssh/environment'
另一个用户可以阅读它:
$ ssh localhost 'echo $variable'
new-value-of-the-var
请注意,您需要使用单引号'
而不是"
for this 以防止您的 shell$variable
在传递给ssh
.
但是,如果您使用它就行不通:http dropbear
: //lists.ucc.gu.uwa.edu.au/pipermail/dropbear/2007q3/000615.html
推荐阅读
- regex - 如何删除两个字符之间的所有空格?
- asp.net-core - 如何在 ASP NET 中将内存数据与磁盘同步
- r - 根据三列删除重复行
- firebase - 向 Firestore 中的特定用户 uid 发送通知
- python - Trie 字典中的前缀搜索
- java - 以斜杠将字符串解析为 JSON 时出错
- javascript - 如何模拟 useState 钩子实现,以便它在测试期间实际更改状态
- angular - 如何从 Angular 4 中的 JSON 文件访问环境变量?
- fullpage.js - fullPage.js 在组件上方和下方具有正常站点
- ruby-on-rails - Rails - 使用模型回调检查关联对象是否被销毁