CentOS 7에 ssh를 설치할 수 없습니다: /usr/sbin/sshd 파일에서 아카이브 압축 풀기에 실패했습니다.

CentOS 7에 ssh를 설치할 수 없습니다: /usr/sbin/sshd 파일에서 아카이브 압축 풀기에 실패했습니다.

SSH에 문제가 있어서 다시 설치하려고 합니다.

그래서 먼저 yum remove openssh-server openssh-clients성공했습니다.

그런 다음 다음을 사용하여 다시 설치하려고 시도했지만 yum install openssh-server openssh-clients다음 오류가 발생했습니다.

[...]
Downloading packages:
--------------------------------------------------------------------------------
Total                                              1.6 MB/s | 1.1 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing   : openssh-server-7.4p1-21.el7.x86_64                         1/2
Error unpacking rpm package openssh-server-7.4p1-21.el7.x86_64
 
error: unpacking of archive failed on file /usr/sbin/sshd: cpio: rename
  Installing   : openssh-clients-7.4p1-21.el7.x86_64                        2/2
Error unpacking rpm package openssh-clients-7.4p1-21.el7.x86_64
 
error: openssh-server-7.4p1-21.el7.x86_64: install failed
error: unpacking of archive failed on file /usr/bin/ssh: cpio: rename
  Verifying    : openssh-clients-7.4p1-21.el7.x86_64                        1/2 
  Verifying    : openssh-server-7.4p1-21.el7.x86_64                         2/2 

Failed:
  openssh-clients.x86_64 0:7.4p1-21.el7   openssh-server.x86_64 0:7.4p1-21.el7  

Complete!

나는 이것이 이러한 파일에 던져지는 불변 플래그와 관련된 문제일 수 있다는 것을 읽었습니다. 실제로 다음을 사용하면 다음과 같은 결과를
lsattr /usr/sbin/sshd
얻습니다.
----i----------- /usr/sbin/sshd

하지만 이렇게 하면 플래그가 여전히 있는지 chattr -i /usr/sbin/sshd다시 확인합니다 .lsattri

이 문제를 해결하고 SSH를 다시 ​​설치할 수 있는 방법은 무엇입니까?

내 CentOS 버전은centos-release-7-9.2009.1.el7.centos.x86_64

나는 이 모든 작업을 루트(su)로 수행합니다.

답변1

제거해도 완전히 제거된 것 같지 않습니다. systemctl status sshd출력이 계속 표시되는지 확인하세요. "sudo systemctl stop sshd"를 실행하고 다시 설치해 보세요. 그래도 실패하면 "sudo systemctl 비활성화 sshd"를 실행하고 재부팅하거나 최소한 로그아웃했다가 다시 로그인한 후 다시 설치하세요.

답변2

물론 이것은현지의셸에서 액세스한 PC에서 다음을 실행하세요.

sudo chattr -i /usr/bin/ssh
echo $?
sudo chattr -i /usr/sbin/sshd
echo $?
sudo killall -9 sshd
pgrep sshd

이제 openssh 서버 및 클라이언트 재설치를 진행할 수 있습니다.

yum install openssh-server openssh-clients

chattr +i부록: 시스템을 "보호"하기 위해 이것을 사용해서는 안 됩니다 . 그 이유를 설명하겠습니다. 해킹당할 때마다 공격자는 루트 계정에 액세스할 수 있으며 다음을 수행할 수 있습니다.

  • 불변 속성 제거(대부분의 하드코어 Linux 해커는 이것을 알고 있습니다)
  • 공격자가 원하는 방식으로 작동하도록 SSH 데몬에서 사용하는 라이브러리를 교체합니다.
  • SSHD 외부에서 전체 액세스 권한을 부여하려면 추가 데몬을 추가하세요.
  • SSHD 동작을 변경/회피하는 커널을 교체하거나 커널 모듈을 추가하세요.

관련 정보