SSH에 연결된 컴퓨터 이름을 찾는 방법

SSH에 연결된 컴퓨터 이름을 찾는 방법

ubuntu20 서버가 있고 /etc/profile.d에 있는 bash 스크립트는 누군가 ssh를 사용하여 연결하면 텔레그램으로 메시지를 보냅니다. 이 스크립트의 목적은 해킹이 있는지 확인하고 조치를 취하는 것입니다.

연결자가 우리 팀의 누군가인지 아니면 해커인지 확인하기 위해 전보 메시지에 포함하기 위해 ssh에 연결된 컴퓨터의 이름을 알고 싶습니다. whoami 결과를 변수에 저장하려고 시도했지만 연결된 사람의 컴퓨터 사용자 이름이 아닌 Linux 사용자 이름이 표시됩니다. 커넥터의 장치에서 whoami 명령을 실행할 수 있나요? 아니면 내가 생각하는 것을 충족시킬 수 있는 다른 방법이 있을까요? 배쉬 코드:

#!/usr/bin/env bash
# Import credentials form config file
. /home/roots/credentials.config
URL="https://api.telegram.org/bot${KEY}/sendMessage"
DATE="$(date "+%d %b %Y %H:%M")"
if [ -n "$SSH_CLIENT" ]; then
ip="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
TEXT=" New login via ssh, username ${USER} IP (*${ip}*)
Date: ${DATE}"
curl -s -d "chat_id=${USERID}&text=${TEXT}&disable_web_page_preview=true&parse_mode=markdown" $URL > /dev/null
fi

답변1

게시물을 기반으로 현재 SSH를 통해 연결된 호스트 이름 확인:

ssh$SSH_CONNECTION공백으로 구분된 클라이언트 IP 주소, 클라이언트 포트 번호, 서버 IP 주소 및 서버 포트 번호를 포함하도록 환경 변수를 설정합니다 .

당신이 사용할 수있는

echo ${SSH_CONNECTION%% *}

클라이언트의 IP 주소를 얻으려면. DNS 이름을 얻으려면 다음과 같은 것을 사용 host하십시오 dig -x.

host ${SSH_CONNECTION%% *}

그런 다음 명령을 시도하십시오 host ${SSH_CONNECTION%% *}.

SSH_CONNECTION호출과 같은 하위 프로세스를 시작할 때 손실되는 또 다른 답변이 언급되었습니다 su.

게시물의 다른 답변도 유용할 수 있습니다.

관련 정보