Rocky Linux에서 SSH 접속이 안 될 때

rocky linux ssh 안될때

Centos의 생명주기가 다 되어 리눅스를 새로운 운영체제로 바꿔야 하는 분들이 요즘 많은 것 같습니다.
그중 Centos의 뒤를 잊는 Rocky Linux에 관심이 많은데요. 설치 후 예상치 못한 문제점에 첫 문제로 SSH 연결 문제인 듯 싶습니다.
다음은 SSH연결이 안되는 문제원인과 해결 방법을 정리해 보았습니다.

SSH 서비스 확인

Rocky Linux에서 SSH 서비스가 실행 중인지 확인 합니다. 다음 명령을 사용하여 SSH 서비스의 상태를 확인할 수 있습니다:

# systemctl status sshd

만약 SSH 서비스가 실행 중이 아니라면, 다음 명령으로 SSH 서비스를 시작합니다:

# systemctl start sshd

서버가 재부팅시 에도 SSH 서비스가 자동으로 시작되도록 설정되도록 설정합니다.

# systemctl enable sshd

방화벽 규칙 확인

방화벽이 SSH 연결을 차단하고 있는지 확인해야 합니다. Rocky Linux에서는 기본적으로 firewalld가 사용됩니다. 방화벽 상태를 확인하려면 다음 명령을 실행합니다.

# firewall-cmd --state

방화벽이 실행 중이면 SSH 포트(기본적으로 22번 포트)가 허용되었는지 확인하십시오. 다음 명령을 사용하여 SSH 포트가 허용되었는지 확인할 수 있습니다.

# firewall-cmd --list-all | grep ssh

SSH 포트가 차단되어 있다면, 다음 명령으로 포트를 허용하고 재실행 해줍니다.

# firewall-cmd --add-service=ssh --permanent
# firewall-cmd --reload

SSH 구성 파일 확인

SSH 서버의 구성 파일을 확인하여 문제가 있는지 확인할 수 있습니다. 기본적으로 SSH 구성 파일은 /etc/ssh/sshd_config에 위치합니다. 다음 명령을 사용하여 구성 파일을 엽니다.

# vi /etc/ssh/sshd_config

파일 내에서 #PermitRootLogin 또는 PermitRootLogin 항목이 주석 처리되어 있는지 확인하십시오. 만약 주석 처리되어 있다면, 주석 처리를 제거하고 PermitRootLogin yes로 설정합니다. 보통 설치시 기본 root로 작업을 하기 때문에 현재처럼 루트로그인을 허용으로 바꾸지만 추후 보안을 위해서는 서브 아이디에 관리자 권한을 주어 루트로그인은 허용하지 않음으로 설정하는 것이 좋습니다. 변경 후에는 SSH 서비스를 재시작합니다.

# systemctl restart sshd

SELinux 확인

SELinux가 SSH 연결을 차단하고 있는지 확인해야 합니다. SELinux가 활성화되어 있는 경우, SSH 포트가 SELinux 정책에 허용되어야 합니다. SELinux 상태를 확인하려면 다음 명령을 실행합니다.

# sestatus

만약 “SELinux status: enabled”라고 표시되면, SELinux 정책을 수정해야 합니다.
SELinux에서 22포트를 허용하고 재실행 줍니다.

# semanage port -a -t ssh_port_t -p tcp 22
# systemctl restart sshd

공유기 설정 확인

외부 인터넷 라인이 서버에 직접 연결되는 경우보다 공유기를 거쳐 연결하는 경우가 많을 텐데요.
이런 경우에는 포트 포워드가 설정되어 있어야 합니다.
보통 공유기 접속 경로는 192.168.0.1로 접속이 되며 다음처럼 서버의 아이피를 찾아 그 아이피로 포트포워딩을 해줘야 합니다.
보통 웹서버와 관련된 포트는 21, 22, 23, 80, 443 포트가 기본적으로 사용될 것 같네요. (가끔 FTP 문제로 20포트가 사용되기도 함)

서버운영을 위한 공유기의 포트포워딩 예시 이미지

참고로 공유기의 USB 서비스를 이용하는 분들은 해당 기능의 포트와 중복되는지도 점검해 보는 것이 좋습니다.

이밖의 다른 원인이 있다면 댓글남겨 주시면 저에게도 도움이 클것 같네요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다