从我连接的内容获取 ssh 用户名机器

从我连接的内容获取 ssh 用户名机器

您能从哪个用户 ssh 连接启动时获取远程机器上的用户名吗?

例如:

我使用登录名“john”连接到机器 1.1.1.1,然后我从该服务器登录到服务器 1.1.1.2,如下所示 -

[john] ~ ssh [email protected]

我可以在服务器 1.1.1.2 上获取用户名“john”吗?

如果我同时拥有第一和第二台服务器的 root 访问权限。我正在尝试查找可以通过 ssh 连接发送的变量,以发送用户名或类似这样的 smtl。

答案1

您可以使用 SSH(命令行参数或 SSH 配置)中的 SendEnv 选项导出环境值,以指定要复制到另一端的变量的名称:

 ssh -o SendEnv=SOMEVAR servername 

但接收端(这里是您的中间服务器)必须允许它们(AcceptEnv/etc/ssh/sshd_config)(*)。当然,避免直接导出 $USER 或 $LOGNAME。

(*) 出于安全原因, 中的变量列表AcceptEnv相当小,但在我的 Ubuntu 服务器上,它默认接受LANGLC_*,因此即使您无法更改它,也可以通过定义/传递 LC_REMOTE_USER 变量来滥用它(即使是对语言环境敏感的代码也可能忽略它)。

相关内容