【问题标题】:Get the local user during ssh session在 ssh 会话期间获取本地用户
【发布时间】:2015-03-08 06:47:01
【问题描述】:

是否可以在远程主机上显示本地用户? 例如:

local_user@ownpc$ ssh remote_user@server

然后

echo $some_variable_containing_local_user

结果为 local_user

目的:我对 UNIX 服务器的读取权限非常有限,我想通过当前的 ssh 会话从远程执行 scp 到本地。无论谁登录,都通过 shell 脚本执行。(无需任何额外的安装或局部变量修改)

Ps.:我不是在寻找scp ssh:user@host/folder/file /home/user/folder

谢谢!

【问题讨论】:

  • 我认为默认情况下不存在任何此类变量。您可以通过 ssh 设置任意变量,但远程守护进程需要支持它们。
  • 我现在没有任何 ssh 访问权限。 ssh remote_user@server 'echo $USER' 不是给你远程用户名吗?祝你好运。

标签: shell unix aix


【解决方案1】:

使用不带引号的 here-doc 允许在将命令传递给 ssh 之前扩展局部变量

local_user@ownpc$ ssh remote_user@server <<END
echo you are $USER
END

应该输出

you are local_user

这可以为您在 here-doc 中编写远程操作脚本提供基础。

【讨论】:

    【解决方案2】:

    我不是 100% 清楚你的情况,但这两种方法都适合我:

    ssh remote_user@remote_host whoami
    

    ssh remote_user@remote_host 'echo $USER'
    

    第一个在远程主机上执行“whoami”,而第二个回显 $USER 在远程 shell 中设置的内容。我有点惊讶第二个有效,因为 ssh 远程执行通常不会启动 shell,但它似乎仍然有效。

    【讨论】:

      猜你喜欢
      • 2016-08-06
      • 2023-03-30
      • 1970-01-01
      • 2015-08-17
      • 2012-08-21
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      相关资源
      最近更新 更多