我有一个脚本,将由一个人使用SSH登录到服务器运行。

是否有一种方法可以自动找出用户从哪个IP地址连接?

当然,我可以询问用户(这是程序员的工具,所以这没有问题),但如果我自己找到答案,那就更好了。


当前回答

Netstat将工作(在顶部像这样) TCP 0 0 10.x.xx。xx: ssh someipaddress.or。建立domainame: 9379

其他回答

我在Debian 10上从who -m——ips得到以下输出:

root pts/0 12月4日06:45 123.123.123.123

看起来像一个新的列被添加,所以{打印$5}或“采取第五列”尝试不再工作。

试试这个:

who -m --ips | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}'

来源:

@Yvan对@AlexP回答的评论 @Sankalp的回答

@Nikhil Katre的回答让我竖起大拇指:

让最后10个用户登录到计算机的最简单的命令是last|head。 要获取所有用户,只需使用last命令

使用who或pinky的人做了什么基本上是在问。但是但是但是他们不提供历史会话信息。

如果你想知道刚刚登录的人是谁,这可能也很有趣 当您开始检查时,已经注销了。

如果是多用户系统。我建议添加您正在寻找的用户帐户:

last | grep $USER | head

编辑:

在我的例子中,$SSH_CLIENT和$SSH_CONNECTION都不存在。

Netstat将工作(在顶部像这样) TCP 0 0 10.x.xx。xx: ssh someipaddress.or。建立domainame: 9379

通常在/var/log/messages(或类似的,取决于你的操作系统)中有一个日志条目,你可以用用户名来grep它。

在你的Linux机器上输入以下命令:

who