Computer >> 컴퓨터 >  >> 체계 >> Linux

Linux에서 모든 활성 SSH 연결을 표시하는 방법

Linux에서 모든 활성 SSH 연결을 표시하는 방법

SSH는 로컬 시스템에서 원격 호스트에 로그인하고 관리할 수 있게 해주는 널리 사용되는 효과적인 프로토콜입니다. 이 가이드는 원격 호스트에서 활성 SSH 연결을 확인하는 데 사용할 수 있는 다양한 명령을 안내합니다.

참고: 시스템 구성에 따라 우리가 논의할 일부 명령에는 루트 또는 sudo가 필요할 수 있습니다. 특권.

1. WHO 명령 사용

활성 SSH 연결을 표시하는 데 사용할 수 있는 첫 번째 명령은 who입니다. 명령.

who 명령은 현재 시스템에 로그인한 사람을 표시하는 데 사용됩니다. 연결된 사용자와 소스 IP 주소를 볼 수 있습니다.

who를 사용하려면 명령을 사용하려면 who를 입력하기만 하면 됩니다. 매개변수 없이.

Linux에서 모든 활성 SSH 연결을 표시하는 방법

위의 출력에서 ​​tty를 통해 연결된 한 명의 데비안 사용자와 원격 IP 주소에서 두 개의 SSH 세션을 볼 수 있습니다.

who에 매개변수를 추가할 수도 있습니다. 자세한 정보를 표시하는 명령입니다.

예를 들어 연결된 사용자의 마지막 부팅을 표시하려면 -b -u를 추가하십시오. 플래그:

누가 -b -u
Linux에서 모든 활성 SSH 연결을 표시하는 방법

who 명령은 사용자 지정 결과를 얻을 수 있는 더 많은 옵션을 제공합니다. 자세한 내용은 매뉴얼 페이지를 확인하십시오.

2. W 명령 사용

다양한 SSH 세션 및 서버에 연결된 사용자의 상태를 표시하는 데 사용할 수 있는 다음 명령은 w입니다. 명령. who와 달리 명령, w 명령은 각 사용자에 대해 실행 중인 프로세스에 대한 자세한 정보를 제공합니다.

또한 w 명령은 유휴 SSH 연결에 대한 정보를 제공하므로 종료해야 할 때 매우 유용합니다.

다른 옵션 없이 명령을 실행하면 아래와 유사한 출력을 얻을 수 있습니다.

Linux에서 모든 활성 SSH 연결을 표시하는 방법

위의 예에서 w 명령은 사용자 이름, TTY 방식, 소스 IP 주소, 로그인 시간, 유휴 시간 등과 같은 자세한 정보를 제공합니다.

who처럼 명령에서 w를 사용할 수도 있습니다. 다양한 매개변수가 있는 명령. 아래 표는 w와 함께 사용할 수 있는 다양한 매개변수를 보여줍니다. 명령.

매개변수 기능
-h, 헤더 없음 헤더를 인쇄하지 않도록 터미널에 알립니다.
-u, –현재 없음 연결된 사용자의 프로세스 및 CPU 시간을 표시하므로 터미널에 사용자 이름을 무시하도록 프롬프트
-s, –short 터미널에 로그인 시간, JCPU 및 PCPU를 제외하고 단축된 출력을 인쇄하도록 지시합니다.
-f, –from 인쇄 출력의 FROM 옵션 활성화/비활성화
–도움말 다양한 w 명령 옵션/매개변수를 표시하고 종료합니다.
-v, –버전 버전에 대한 정보를 표시하고 종료합니다.
사용자 지정된 사용자로 결과 범위를 좁힙니다.

아래 예는 w -s와 함께 사용되는 명령 및 -f FROM 부분이 잘린 현재 SSH 세션의 요약된 출력을 표시하는 매개변수입니다.

Linux에서 모든 활성 SSH 연결을 표시하는 방법

거의 사용되지는 않지만 w를 사용할 수도 있습니다. 환경 및 파일 매개변수가 있는 명령. 이러한 매개변수에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오.

3. 마지막 명령 사용

last을 사용할 수도 있습니다. 연결된 모든 SSH 세션을 표시하는 명령입니다. 마지막 명령은 마지막으로 로그인한 사용자의 목록을 보여줍니다.

지정된 파일을 확인하여 작동합니다. 예를 들어 "/var/log/wtmp"는 파일 생성 이후 로그인 및 로그아웃한 모든 사용자를 보여줍니다. 이 명령은 클라이언트와 서버 간에 생성된 SSH 세션에 대한 정보도 제공합니다.

마지막 명령의 일반 구문은 다음과 같습니다.

마지막

다음은 예입니다.

Linux에서 모든 활성 SSH 연결을 표시하는 방법

마지막 명령의 출력이 방대하기 때문에 grep를 사용할 수 있습니다. 활성 세션만 표시하는 명령입니다.

예:

<이전>마지막 | 여전히 그렙 Linux에서 모든 활성 SSH 연결을 표시하는 방법

마지막 명령의 출력을 수정하여 자세한 정보를 표시할 수도 있습니다.

예를 들어 전체 사용자 이름과 도메인을 표시하려면 -w를 사용할 수 있습니다. 플래그.

마지막 -w

마지막 명령은 다양한 옵션을 지원합니다. 다음은 마지막 명령에 가장 일반적으로 사용되는 옵션입니다.

매개변수 기능
-a, –hostlast 마지막 열에 호스트 이름을 표시합니다.
-d, –dns 리눅스는 모든 원격 호스트의 호스트 이름과 IP 주소를 저장합니다. 이 매개변수는 IP를 호스트 이름으로 바꿉니다.
-파일, –파일 /var/log/wtmp 이외의 지정된 파일을 사용하도록 마지막 명령을 알려줍니다.
-F, –풀타임 모든 로그인 및 로그아웃 날짜와 시간을 마지막으로 인쇄하라는 메시지
-i, –ip 호스트의 호스트 이름을 표시하는 대신 IP 번호를 표시한다는 점을 제외하고 –dns와 유사합니다.

4. netstat 명령 사용

우리는 netstat를 잊을 수 없습니다. 명령. Netstat는 모든 네트워크 연결, 네트워크 인터페이스, 라우팅 테이블 등을 표시하는 데 사용됩니다.

netstat 명령을 사용하여 Linux 서버에서 설정되거나 연결된 SSH 세션을 필터링할 수도 있습니다.

넷스타트 | grep ssh
Linux에서 모든 활성 SSH 연결을 표시하는 방법

위 명령어는 설정된 SSH 연결만 보여줍니다.

수신 및 비 수신을 포함한 모든 연결을 표시하려면 -a를 사용할 수 있습니다. 플래그:

네스타트 -a | grep ssh
Linux에서 모든 활성 SSH 연결을 표시하는 방법

5. ss 명령 사용

연결된 SSH 세션에 대한 자세한 정보를 알고 싶다면 ss를 사용할 수 있습니다. 소켓 데이터를 표시하는 명령으로 netstat와 유사합니다. .

예를 들어, ss의 출력을 grep할 수 있습니다. -a 명령 연결된 모든 SSH 세션을 표시하려면 옵션(all)을 선택합니다. 이에 대한 구문은 다음과 같습니다.

ss -a | grep ssh
Linux에서 모든 활성 SSH 연결을 표시하는 방법

위의 출력은 원격 호스트의 모든 SSH 연결을 표시합니다. 여기에는 SSHD 데몬이 포함됩니다.

설정된 SSH 연결을 필터링하기 위해 출력을 다시 grep으로 파이프할 수 있습니다.

ss -a | 그렙 SSH | grep ESTAB
Linux에서 모든 활성 SSH 연결을 표시하는 방법

위의 명령은 활성 SSH 연결만 반환합니다.

ss 명령에는 활성 서버 연결에 대한 다양한 정보를 배우는 데 사용할 수 있는 수많은 다른 옵션도 있습니다. 예를 들어 -e를 사용할 수 있습니다. 소켓 정보에 대한 자세한 정보를 표시하는 플래그입니다.

마무리

무단 SSH 로그인에 대해 원격 호스트를 계속 모니터링하고 서버 보안 또는 암호 인증 비활성화와 같은 필요한 조치를 취하는 것이 좋습니다. 한편, 역 SSH 터널링을 사용하여 PC에 외부 연결을 허용할 수도 있습니다.