소개
이 랩에서는 Linux 시스템에서 SSH 서버가 실행 중인지 확인하는 방법을 배우게 됩니다. systemctl status ssh 명령을 사용하여 서비스의 실행 상태를 확인하고, ss -tuln 명령을 사용하여 SSH 포트가 열려 있고 리스닝 중인지 확인하며, cat /etc/ssh/sshd_config 명령을 사용하여 SSH 서버 구성 파일을 검사합니다. 이러한 단계는 SSH 서버 기능의 문제 해결 및 검증에 필수적입니다.
systemctl status ssh 로 SSH 서비스 확인
이 단계에서는 Linux 시스템에서 SSH 서비스의 상태를 확인하는 방법을 배우게 됩니다. SSH (Secure Shell) 는 원격 컴퓨터에 안전하게 연결하는 데 사용되는 프로토콜입니다. 시스템 관리 및 개발을 위한 기본적인 도구입니다.
Linux 에서 SSH 와 같은 서비스는 종종 시스템 및 서비스 관리자인 systemd에 의해 관리됩니다. systemctl 명령은 systemd와 상호 작용하는 데 사용됩니다.
SSH 서비스의 상태를 확인하려면 서비스 이름인 ssh 다음에 systemctl status 명령을 사용합니다.
아직 열려 있지 않은 경우 터미널을 엽니다. 데스크탑 왼쪽에서 Xfce 터미널 (Xfce Terminal) 아이콘을 찾을 수 있습니다.
터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
systemctl status ssh
다음과 유사한 출력을 보게 됩니다.
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since ...
Docs: man:sshd(8)
man:ssh(1)
Main PID: ... (sshd)
Tasks: 1 (limit: ...)
Memory: ...
CPU: ...
CGroup: /system.slice/ssh.service
└─... /usr/sbin/sshd -D
...
출력의 중요한 부분을 살펴보겠습니다.
● ssh.service: 서비스의 이름입니다.Loaded: loaded (...): 서비스 구성 파일이systemd에 의해 로드되었음을 나타냅니다.Active: active (running): 이것이 가장 중요한 부분입니다. SSH 서비스가 현재 실행 중임을 알려줍니다. 중지된 경우inactive (dead)와 같은 내용이 표시됩니다.since ...: 서비스가 시작된 시간을 표시합니다.Main PID: ... (sshd): 메인 SSH 데몬 프로세스 (sshd) 의 프로세스 ID 입니다.
이 명령은 네트워크 연결 문제를 해결하거나 서비스가 예상대로 실행 중인지 확인하는 데 필수적입니다.
다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.
ss -tuln 으로 SSH 포트 확인
이 단계에서는 시스템에서 어떤 네트워크 포트가 열려 있고 리스닝 중인지 확인하는 방법을 배우게 됩니다. 이는 SSH 와 같은 서비스에 어떻게 접근할 수 있는지 이해하는 데 매우 중요합니다.
ss 명령은 소켓을 조사하는 유틸리티입니다. 소켓은 네트워크를 통해 데이터를 송수신하기 위한 엔드포인트입니다. 출력을 필터링하기 위해 여러 옵션과 함께 ss를 사용합니다.
-t: TCP 소켓을 표시합니다. SSH 는 TCP 프로토콜을 사용합니다.-u: UDP 소켓을 표시합니다.-l: 리스닝 소켓을 표시합니다. 이는 들어오는 연결을 기다리는 소켓입니다.-n: 서비스 이름을 확인하지 않습니다.ssh또는http와 같은 이름 대신 포트 번호를 표시합니다.
이러한 옵션을 결합하여 모든 리스닝 TCP 및 UDP 포트를 숫자 값과 함께 확인합니다.
터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
ss -tuln
다양한 리스닝 포트가 나열된 출력을 보게 됩니다. 일반적으로 포트 22 에서 리스닝하는 SSH 와 관련된 줄을 찾습니다. 출력은 다음과 유사할 수 있습니다 (정확한 순서 및 다른 포트는 다를 수 있음).
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 [::]:22 [::]:*
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:*
이 출력에서:
Netid: 네트워크 프로토콜 (tcp 또는 udp).State: 소켓의 상태 (LISTEN 은 연결을 기다리고 있음을 의미합니다).Local Address:Port: 서비스가 리스닝 중인 로컬 IP 주소 및 포트 번호입니다.0.0.0.0은 사용 가능한 모든 IPv4 주소에서 리스닝 중임을 의미하고,[::]는 사용 가능한 모든 IPv6 주소에서 리스닝 중임을 의미합니다.Peer Address:Port: 원격 연결의 주소 및 포트 (리스닝 소켓의 경우*).
TCP 포트 22 가 LISTEN 상태임을 나타내는 줄을 볼 수 있습니다. 이는 SSH 서비스가 실행 중이며 표준 SSH 포트에서 연결을 수락할 준비가 되었음을 확인합니다.
열린 포트를 확인하는 방법을 이해하는 것은 네트워크 문제 해결 및 보안을 위한 기본적인 기술입니다.
다음 단계로 이동하려면 **계속 (Continue)**을 클릭하십시오.
cat /etc/ssh/sshd_config로 SSH 설정 검토
이 마지막 단계에서는 SSH 서버의 주요 구성 파일을 검사합니다. 이 파일에는 SSH 서비스가 어떻게 작동하는지 제어하는 설정이 포함되어 있습니다. 예를 들어, 어떤 포트에서 리스닝하는지, 어떤 사용자가 연결할 수 있는지, 보안 옵션 등이 있습니다.
SSH 데몬 (sshd) 의 구성 파일은 일반적으로 /etc/ssh/sshd_config에 있습니다. /etc 디렉토리는 시스템 구성 파일이 저장되는 곳입니다.
이 파일의 내용을 보려면 cat 명령을 사용할 수 있습니다. cat은 파일을 순차적으로 읽어 표준 출력 (터미널) 에 인쇄하는 간단한 명령입니다.
터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
cat /etc/ssh/sshd_config
터미널에 sshd_config 파일의 전체 내용이 인쇄되는 것을 볼 수 있습니다. 출력에는 많은 줄이 포함되어 있으며, 일부는 #로 시작합니다 (주석이며 시스템에서 무시됨) 그리고 다른 줄은 구성 옵션을 정의합니다.
주석 처리되지 않은 줄 ( #로 시작하지 않는 줄) 을 찾습니다. 볼 수 있는 몇 가지 중요한 지시어는 다음과 같습니다.
Port 22: SSH 서버가 리스닝하는 포트를 지정합니다. 기본적으로 22 입니다.ListenAddress 0.0.0.0: 서버가 리스닝하는 IPv4 주소를 지정합니다.ListenAddress ::: 서버가 리스닝하는 IPv6 주소를 지정합니다.PermitRootLogin prohibit-password: root 사용자가 SSH 를 통해 직접 로그인할 수 있는지 여부를 제어합니다.PasswordAuthentication yes: 암호 인증이 허용되는지 여부를 제어합니다.
## This is the sshd server system configuration file.
## See sshd_config(5) for more information.
## The systemd service file for sshd uses EnvironmentFile to load
## the SSHD_CONFIG environment variable, setting this to /etc/ssh/sshd_config.
## ...
Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
## Ciphers and keying
#...
## Authentication:
LoginGraceTime 2m
PermitRootLogin prohibit-password
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
## Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
#IgnoreRhosts yes
#RhostsRSAAuthentication no
#HostbasedAuthentication no
#...
PasswordAuthentication yes
#PermitEmptyPasswords no
ChallengeResponseAuthentication no
#...
이와 같이 구성 파일을 읽는 것은 Linux 서비스를 이해하고 관리하기 위한 핵심 기술입니다. 이 랩에서는 파일을 수정하지 않지만, 파일이 어디에 있는지, 내용을 보는 방법을 아는 것은 매우 유용합니다.
이제 SSH 서비스 상태를 성공적으로 확인하고, 리스닝 포트를 확인하고, 구성 파일을 검사했습니다. 서비스 관리 및 네트워크 검사를 위한 기본적인 Linux 명령에 대한 귀중한 경험을 얻었습니다.
랩을 완료하고 진행 상황을 확인하려면 **계속 (Continue)**을 클릭하십시오!
요약
이 랩에서는 SSH 서버가 Linux 시스템에서 실행 중인지 확인하는 방법을 배웠습니다. systemctl status ssh 명령을 사용하여 서비스의 활성 상태를 확인하고 로드된 상태, 활성 상태 및 프로세스 ID 와 같은 주요 세부 정보를 이해했습니다. 이 명령은 SSH 서비스가 작동하는지 확인하는 데 매우 중요합니다.
또한 ss -tuln 명령을 사용하여 SSH 포트를 확인하고 cat 명령을 사용하여 /etc/ssh/sshd_config에 있는 SSH 구성 파일을 검사하는 방법을 배웠습니다. 이러한 단계는 SSH 서버의 네트워크 구성 및 설정에 대한 추가적인 통찰력을 제공합니다.



