也许不是措辞最好的问题,但希望这是一个直截了当的问题。
该方案是从方框A上的个人帐户进行SSH连接到方框B上的通用帐户。方框B上运行的脚本需要捕获个人帐户名以进行日志记录。有没有办法通过SSH本身或shell捕获的一些信息来捕获它?我们在Solaris上使用ssh2(Reflections)和KornShell(ksh)。
答案 0 :(得分:1)
如果您完全控制客户端计算机,则可以部署identd以获取用户名。
从脚本中获取名称的完整程序:
您可能必须禁用权限分离才能按原样运行;但是修改工作应该是微不足道的。
答案 1 :(得分:0)
你可以有一个标准,他们使用ssh的别名作为登录过程的一部分记录远程用户名,或者将他们的用户名存储在.ssh / environment文件中(但允许设置环境)可能需要ssh / sshd配置更改)。
alias sshblah ='ssh blah“REMOTEUSER = $ USER; bash' (除非这不起作用,我没有试图找出原因 - 如果你使用tcsh等会有所不同。)
您可以使用this manner中的环境传递,并选择允许设置的变量。你必须让用户设置一些替代$ USER,比如$ REMOTE_USER = $ USER,然后允许$ REMOTE_USER通过。并且你相信他们不会错误地设置它,或者忘记设置它(你可以通过修改this mechanism来解决这个问题。)
请注意,您几乎 信任客户端连接以告诉您该用户是谁 - 您可以使欺骗用户名变得困难/烦恼,但除非您使用每用户证书而不是他们都知道的通用登录名/密码,你无法验证谁连接。