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
再確認します。lsattr
i
この問題を解決して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の動作を変更/回避するカーネルを交換するか、カーネルモジュールを追加してください。