gpt4 book ai didi

linux - 有效的 authorized_keys 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:32:01 26 4
gpt4 key购买 nike

我有一个使用 Python 和 Paramiko 编写的软件,它可以将公共(public) ssh key 分发到目标 linux 机器。然后它尝试使用私钥进行连接。在一台机器上(RHEL 版本 5),它可以正常工作。在其他机器(CentOS、RHEL 版本 6)上,会发生一些奇怪的事情。公钥已分发,但服务器拒绝私钥(我使用 plink 进行测试)。然后我执行以下操作(在 .ssh 目录中):

cp authorized_keys _temp
cat _temp > authorized_keys
chown testuser authorized_keys
chmod 600 authorized_keys

然后身份验证工作(就像以前一样)。所以这排除了 sshd 配置。另外,正如我之前提到的,分发在另一台机器上工作,并且使用相同的分发机制进行身份验证是成功的。所以我想分布没问题。估计和文本文件格式有关。我通过将 authorized_keys 文件返回到我的机器并检查它来排除 CR+LF 而不是 LF - 它只有 LF。

所以目前我唯一可以肯定地说的是,cat 和 >(或其中之一)以某种方式“修复”了文件,但我不能真正说出是哪一个以及如何修复的。因为我希望这个过程在没有人工干预的情况下工作,并且尽可能少的变通办法 -> 谁能解释一下?

谢谢!

最佳答案

您可以尝试使用 dos2unix 命令来修复空格:

dos2unix authorized_keys

但我怀疑这也可能是 selinux 的问题。如果您使用 ls 可视化 selinux 上下文:

ls -lZ .ssh/*

你应该得到类似的东西

-rw-------. git git unconfined_u:object_r:ssh_home_t:s0 authorized_keys

查看 ssh_home_t 上下文。如果您没有看到,您需要使用 restorecon 恢复它:

restorecon -r .ssh

一般情况下,可以使用audit2why命令查看selinux问题出了什么问题:

audit2why /var/log/audit/audit.log

关于linux - 有效的 authorized_keys 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25659362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com