OS RHEL 9에서 RHEL 6 시스템 또는 타사 APP 서비스로 SSH 연결이 되지 않는 이유
페이지 정보
작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 26회 좋아요 0회 작성일 24-12-24 20:10본문
안녕하세요
오늘은 레드햇 KCS(Knowledge Centered Support) 한개를 소개시켜 드리려합니다.
"RHEL 9에서 RHEL 6 시스템 또는 타사 APP 서비스로 SSH 연결이 되지 않는 이유"입니다.
1) 문제 발생
RHEL 9에서 RHEL6서버로 SSH 접속이 안되거나, 타사 어플리케이션에 RHEL9 으로부터 SSH접속하려호하는데
접속이 안되는 이슈입니다.
- 에러 메세지는 아래와 같이 발생합니다.
ssh_dispatch_run_fatal: Connection to 1.2.3.4 port 22: error in libcrypto
Or
Unable to negotiate with 1.2.3.4 port 22: no matching host key type found. Their offer: ssh-rsa
그리고 위에서 말한 타사 어플리케이션은 GitBlit라는 것이 있습니다.
2) 해결 방안
- 해결 방안은 총 4개를 설명 하고 있습니다.
1) 대상 시스템/서비스(RHEL6)에서 RSA 대신 ECDSA 알고리즘을 사용하여 호스트 키를 생성합니다.
RHEL6의 경우 Red Hat Enterprise Linux 6에서 openssh와 함께 ECDSA 및 ECDH를 사용하는 방법 에 절차가 설명되어 있습니다 .
2023년 12월 21일 기준으로 GitBlit과 같은 타사 애플리케이션의 경우 해당 솔루션은 적용되지 않습니다.
. 참고링크 : https://access.redhat.com/solutions/711953
2) 사실 저는 이 방법이 가장 쉽게 접근할수 있는 방법이라고 생각합니다.
접속을 시도하는(RHEL9) 시스템에서 기본 정책 위에 SHA1 암호화 정책을 활성화합니다.
# update-crypto-policies --set DEFAULT:SHA1
또는 시스템 전체 암호화 정책을 LEGACY 정책으로 전환할 수 있습니다.
LEGACY 암호화 정책은 더 이상 권장되지 않는 다른 알고리즘과 함께 SHA1 알고리즘을 다시 활성화합니다.
*이 옵션은 Red Hat에서 권장하지 않으며 RHEL 6 구성을 변경할 수 없는 경우에만 해결책으로 사용해야 합니다 .
3) 이방법이 제일 복잡해 보이긴 합니다. ~
- 소스 시스템에서 필요에 따라 사용할 수 있는 맞춤형 OpenSSH 및 OpenSSL 구성을 작성합니다. 이는 runcp wrapper 와 유사하지만, 지원되지 않는 패키지를 필요로 하지 않으므로 Red Hat 지원에서 어느 정도 지원받을 수 있습니다.
# update-crypto-policies --set DEFAULT:SHA1
# cp /etc/crypto-policies/back-ends/opensslcnf.config /etc/crypto-policies/back-ends/opensslcnf+sha1-KCS6816771.config
# cp /etc/crypto-policies/back-ends/openssh.config /etc/crypto-policies/back-ends/openssh+sha1-KCS6816771.config
# update-crypto-policies --set DEFAULT
# sed "s#opensslcnf.config#opensslcnf+sha1-KCS6816771.config#" /etc/ssl/openssl.cnf > /etc/ssl/openssl+sha1-KCS6816771.cnf
# vim /etc/ssh/ssh_config.d/10-sha1-KCS6816771.conf ... editor opens ...
—---------------------------------------------------------------------------------
# Example for a legacy system running RHEL6 and accessed through name or IP address 1.2.3.4 Match host my-rhel6-system 1.2.3.4 Include /etc/crypto-policies/back-ends/openssh+sha1-KCS6816771.config
# Example for 3rd party application service GitBlit Match host <gitblit-identifier> Hostname <gitblit-system> Port <gitblit-port> Include /etc/crypto-policies/back-ends/openssh+sha1-KCS6816771.config
—---------------------------------------------------------------------------------
4) 소스 시스템에서 runcp wrapper를 설치합니다.
> 패키지 설치
# dnf copr enable asosedkin/crypto-policies-extras
# dnf -y install crypto-policies-extras
> 명령을 래퍼에 래핑합니다.
$ runcp LEGACY ssh my-rhel6-host <command>
>git을 사용할 때 3자 애플리케이션 서비스 GitBlit에 대한 예:
$ runcp LEGACY git clone ssh://<gitblit-service>:<gitblit-port>/path/to/my/git
3. 장애 원인
- RHEL 6 OpenSSH 구현은 SHA1에 의존하는 ssh-rsa 공개 키 서명 알고리즘을 사용합니다. OpenSSH 업스트림은 OpenSSH 릴리스 8.8 이후로 기본적으로 SHA1 해시 알고리즘을 사용하여 RSA 서명을 비활성화했습니다.
- In RHEL 9, SHA1 usage is restricted in the DEFAULT system-wide cryptographic policy. With the exception of HMAC usage, SHA1 is no longer allowed in TLS, DTLS, SSH, IKEv2 and Kerberos protocols.
즉, RHEL9에서는 SHA1을 사용하지 않기에 이런 문제가 발생하는것입니다.
이 KCS 경로 : https://access.redhat.com/solutions/6816771
추가 설명글 : https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9
긴글 읽어주셔서 감사합니다. 혹, 질문이 있으신분은 언제든 댓글 남겨주세요.
감사합니다.
댓글목록
등록된 댓글이 없습니다.