Вы можете использовать переменные SSH_CONNECTION и SSH_CLIENT:
$ echo $SSH_CONNECTION
10.0.0.1 42276 10.0.0.2 22
$ echo $SSH_CLIENT
10.0.0.1 42276 22
$ SSH_IP=${SSH_CONNECTION%% *}
$ echo $SSH_IP
10.0.0.1
Из man 1 ssh:
SSH_CONNECTION Identifies the client and server ends of the
connection. The variable contains four space-
separated values: client IP address, client port
number, server IP address, and server port number.
Вы можете получить доступ к каждой записи в SSH_CONNECTION более легко, если вы разделите его на массив bash:
ssh_details=($SSH_CONNECTION)
Затем вы можете получить каждую запись, используя свой индекс:
$ echo $SSH_CONNECTION
127.0.0.1 55719 127.0.0.1 22
$ ssh_details=($SSH_CONNECTION)
$ echo ${ssh_details[0]}
127.0.0.1
$ echo ${ssh_details[1]}
55719
$ printf "You are logging in from host IP %s from port # %d\n" ${ssh_details[0]} ${ssh_details[1]}
You are logging in from host IP 127.0.0.1 from port # 55719
По какой-то причине SSH_CLIENT не задокументировано в английских manpages.