是否可以在连接被授权之前获取 SSH 连接的传入 IP 地址?
我们正在使用按预期工作的 AuthorizedKeysCommand bash 脚本,但我希望至少能够记录尝试,包括传入的 IP 地址。我一直找不到任何可以隐约暗示它可用的东西。环境变量,如 $SSH_CLIENT
和 $SSH_CONNECTION
在脚本中为空,并且 sshd 配置中没有包含 IP 的可用 token 。
授权 key 脚本非常简单。
#!/bin/bash
curl -sf -X GET "http://10.x.x.x/gatekeeper/$1/$IP_WOULD_GO_HERE"
最佳答案
看起来您自己已经回答了大部分问题:该值既不能作为 token 也不能作为环境变量使用。您剩下的选择是在 sshd 本身之外的某处记录连接:
systemctl disable --now ssh
systemctl enable --now ssh.socket
...然后您会看到所有连接都记录在您的日志中,如下所示:Apr 14 17:43:41 node1 systemd[1]: Started OpenSSH per-connection server daemon (192.168.121.19:45516).
端口 22:
iptables -A INPUT -p tcp --dport 22 --syn -j LOG --log-prefix 'SSH '
这将使您记录如下消息:Apr 14 17:46:33 node1 kernel: SSH IN=eth0 OUT= MAC=52:54:00:e9:91:6f:52:54:00:4f:05:26:08:00 SRC=192.168.121.19 DST=192.168.121.35 LEN=60 TOS=0x08 PREC=0x40 TTL=64 ID=40136 DF PROTO=TCP SPT=45518 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
关于ubuntu - SSH AuthorizedKeysCommand 执行过程中能否获取远程 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71849366/