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

私はこれをすべてルートとして実行します。

答え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の動作を変更/回避するカーネルを交換するか、カーネルモジュールを追加してください。

関連情報