Linux/Unix 中是否有任何方法可以确定用户用于连接操作系统的客户端应用程序。在我们的环境中,成千上万的用户通过 WinSCP、Dbvisualizer、putty 等客户端应用程序连接到我们的系统。我们需要检查用户用于连接到服务器的客户端应用程序。
答案1
简单回答:不,没有确定的方法。当使用正确的转义序列进行查询时,终端应用程序通常会报告可用的功能,但这有时不足以检测使用的是哪个应用程序,而且很容易被伪造。
一般来说,实际使用的终端应用程序并不重要,因此也许您应该重新表述您的问题以陈述您尝试解决的实际问题。
答案2
客户端可能使用许多工具,但底层技术或protocols
这些“工具”可能使用相同的“ SFTP, SSH, telnet
”等来连接到服务器。因此,系统将看到的只是某个远程主机正在尝试ssh or sftp
在此服务器上打开会话。检查/var/log/secure
更多。您会遇到的一些常见消息是:
ssh
通过以下工具putty or xshell
:
sshd[19199]: Accepted password for root from 10.10.10.10 port 51162 ssh2
sshd[19199]: pam_unix(sshd:session): session opened for user root by (uid=0)
sftp
通过winscp
:
sshd[19238]: Accepted password for root from 10.10.10.10 port 51163 ssh2
sshd[19238]: pam_unix(sshd:session): session opened for user root by (uid=0)
sshd[19238]: subsystem request for sftp
PS:但是可能有一些奢侈的工具可以完成您的工作......在这个软件世界中永远不要说永远!