SSH는 로컬 시스템에서 원격 호스트에 로그인하고 관리할 수 있게 해주는 널리 사용되는 효과적인 프로토콜입니다. 이 가이드는 원격 호스트에서 활성 SSH 연결을 확인하는 데 사용할 수 있는 다양한 명령을 안내합니다.
참고: 시스템 구성에 따라 우리가 논의할 일부 명령에는 루트 또는 sudo
가 필요할 수 있습니다. 특권.
1. WHO 명령 사용
활성 SSH 연결을 표시하는 데 사용할 수 있는 첫 번째 명령은 who
입니다. 명령.
who
명령은 현재 시스템에 로그인한 사람을 표시하는 데 사용됩니다. 연결된 사용자와 소스 IP 주소를 볼 수 있습니다.
who
를 사용하려면 명령을 사용하려면 who
를 입력하기만 하면 됩니다. 매개변수 없이.
위의 출력에서 tty를 통해 연결된 한 명의 데비안 사용자와 원격 IP 주소에서 두 개의 SSH 세션을 볼 수 있습니다.
who
에 매개변수를 추가할 수도 있습니다. 자세한 정보를 표시하는 명령입니다.
예를 들어 연결된 사용자의 마지막 부팅을 표시하려면 -b -u
를 추가하십시오. 플래그:
누가 -b -u
who
명령은 사용자 지정 결과를 얻을 수 있는 더 많은 옵션을 제공합니다. 자세한 내용은 매뉴얼 페이지를 확인하십시오.
2. W 명령 사용
다양한 SSH 세션 및 서버에 연결된 사용자의 상태를 표시하는 데 사용할 수 있는 다음 명령은 w
입니다. 명령. who
와 달리 명령, w
명령은 각 사용자에 대해 실행 중인 프로세스에 대한 자세한 정보를 제공합니다.
또한 w
명령은 유휴 SSH 연결에 대한 정보를 제공하므로 종료해야 할 때 매우 유용합니다.
다른 옵션 없이 명령을 실행하면 아래와 유사한 출력을 얻을 수 있습니다.
위의 예에서 w
명령은 사용자 이름, TTY 방식, 소스 IP 주소, 로그인 시간, 유휴 시간 등과 같은 자세한 정보를 제공합니다.
who
처럼 명령에서 w
를 사용할 수도 있습니다. 다양한 매개변수가 있는 명령. 아래 표는 w
와 함께 사용할 수 있는 다양한 매개변수를 보여줍니다. 명령.
매개변수 | 기능 |
---|---|
-h, 헤더 없음 | 헤더를 인쇄하지 않도록 터미널에 알립니다. |
-u, –현재 없음 | 연결된 사용자의 프로세스 및 CPU 시간을 표시하므로 터미널에 사용자 이름을 무시하도록 프롬프트 |
-s, –short | 터미널에 로그인 시간, JCPU 및 PCPU를 제외하고 단축된 출력을 인쇄하도록 지시합니다. |
-f, –from | 인쇄 출력의 FROM 옵션 활성화/비활성화 |
–도움말 | 다양한 w 명령 옵션/매개변수를 표시하고 종료합니다. |
-v, –버전 | 버전에 대한 정보를 표시하고 종료합니다. |
사용자 | 지정된 사용자로 결과 범위를 좁힙니다. |
아래 예는 w
-s
와 함께 사용되는 명령 및 -f
FROM 부분이 잘린 현재 SSH 세션의 요약된 출력을 표시하는 매개변수입니다.
거의 사용되지는 않지만 w
를 사용할 수도 있습니다. 환경 및 파일 매개변수가 있는 명령. 이러한 매개변수에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오.
3. 마지막 명령 사용
last
을 사용할 수도 있습니다. 연결된 모든 SSH 세션을 표시하는 명령입니다. 마지막 명령은 마지막으로 로그인한 사용자의 목록을 보여줍니다.
지정된 파일을 확인하여 작동합니다. 예를 들어 "/var/log/wtmp"는 파일 생성 이후 로그인 및 로그아웃한 모든 사용자를 보여줍니다. 이 명령은 클라이언트와 서버 간에 생성된 SSH 세션에 대한 정보도 제공합니다.
마지막 명령의 일반 구문은 다음과 같습니다.
마지막
다음은 예입니다.
마지막 명령의 출력이 방대하기 때문에 grep
를 사용할 수 있습니다. 활성 세션만 표시하는 명령입니다.
예:
<이전>마지막 | 여전히 그렙마지막 명령의 출력을 수정하여 자세한 정보를 표시할 수도 있습니다.
예를 들어 전체 사용자 이름과 도메인을 표시하려면 -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
위 명령어는 설정된 SSH 연결만 보여줍니다.
수신 및 비 수신을 포함한 모든 연결을 표시하려면 -a
를 사용할 수 있습니다. 플래그:
네스타트 -a | grep ssh
5. ss 명령 사용
연결된 SSH 세션에 대한 자세한 정보를 알고 싶다면 ss
를 사용할 수 있습니다. 소켓 데이터를 표시하는 명령으로 netstat
와 유사합니다. .
예를 들어, ss
의 출력을 grep할 수 있습니다. -a
명령 연결된 모든 SSH 세션을 표시하려면 옵션(all)을 선택합니다. 이에 대한 구문은 다음과 같습니다.
ss -a | grep ssh
위의 출력은 원격 호스트의 모든 SSH 연결을 표시합니다. 여기에는 SSHD 데몬이 포함됩니다.
설정된 SSH 연결을 필터링하기 위해 출력을 다시 grep으로 파이프할 수 있습니다.
ss -a | 그렙 SSH | grep ESTAB
위의 명령은 활성 SSH 연결만 반환합니다.
ss
명령에는 활성 서버 연결에 대한 다양한 정보를 배우는 데 사용할 수 있는 수많은 다른 옵션도 있습니다. 예를 들어 -e
를 사용할 수 있습니다. 소켓 정보에 대한 자세한 정보를 표시하는 플래그입니다.
마무리
무단 SSH 로그인에 대해 원격 호스트를 계속 모니터링하고 서버 보안 또는 암호 인증 비활성화와 같은 필요한 조치를 취하는 것이 좋습니다. 한편, 역 SSH 터널링을 사용하여 PC에 외부 연결을 허용할 수도 있습니다.