RHEL9 SSH 접속 불가 문제

일부 RHEL9 버전에서 아래와 같이 SSH접속이 일방적으로 끊기면서 접속이 되지 않는 현상이 발생할 때가 있다.

Connecting to 10.33.2.10:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(00. khnp-director) at 09:58:04.

Type `help' to learn how to use Xshell prompt.
 

이 현상은 openssh 버전업 되면서 보안정책이 바뀌어서 발생하는 문제이다.
실제로 정상적인 openssh daemon의 경우 아래와 같은 설정이 sshd_config에 포함되어있다.

# To modify the system-wide sshd configuration, create a  *.conf  file under
#  /etc/ssh/sshd_config.d/  which will be automatically included below
Include /etc/ssh/sshd_config.d/*.conf       ########### <<<<< - 이부분

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

실제 저 sshd_config.d 디렉토리 안에는 아래처럼 파일이 존재하는데

[root@kvm33 sshd_config.d]# ll
total 8
-rw-r--r--. 1 root root 141 Nov 21 12:10 01-permitrootlogin.conf
-rw-------. 1 root root 719 Sep 23  2022 50-redhat.conf
[root@kvm33 sshd_config.d]# cat 50-redhat.conf
# This system is following system-wide crypto policy. The changes to
# crypto properties (Ciphers, MACs, ...) will not have any effect in
# this or following included files. To override some configuration option,
# write it before this block or include it before this file.
# Please, see manual pages for update-crypto-policies(8) and sshd_config(5).
Include /etc/crypto-policies/back-ends/opensshserver.config     ######### <<<<<-- 이부분

SyslogFacility AUTHPRIV

ChallengeResponseAuthentication no

GSSAPIAuthentication yes
GSSAPICleanupCredentials no

UsePAM yes

X11Forwarding yes

# It is recommended to use pam_motd in /etc/pam.d/sshd instead of PrintMotd,
# as it is more configurable and versatile than the built-in version.
PrintMotd no

위와 같이 opensshserver.config 파일내에 openssh 암호화 정책이 선언되어있다.
이 정책파일내에 접속시 암호화 핸드쉐이킹부분이 선언되어있는데 그중 SHA1 정책에 대한 우선순위등이 저 파일내에 존재한다.

하지만 만약 저 파일을 포함하지 않고 기본값으로 openssh 를 기동하게 되면 지원되는 암호화 알고리즘이나 우선순위 정책등이 바뀌게 된다.

그런 이유로 일부 ssh 클라이언트에서는 정책 우선순위나 암호화 방식이 맞지 않아 접속이 끊기게 되는것이다.

따라서 해결방법은 해당 Include 라인이 존재하는지 확인해보면 된다. 아니면 최신 putty등으로 ssh client를 변경해서 접속하면 된다.

참조링크