在 Ubuntu 14 和 Ubuntu 18 之间实现双向 ssh 运行存在问题

在 Ubuntu 14 和 Ubuntu 18 之间实现双向 ssh 运行存在问题

一个旧的(过时的)Ubuntu 16安装用于通过无密码ssh连接到更老更过时的云服务器,反之亦然。这是自动化脚本将文件夹从远程服务器同步到云所需的。

云服务器正在被取消,因此我们正在设置一个新的云服务器,从 Ubuntu 14 跳到 Ubuntu 18。我们从全新安装 18.04.3 开始,然后简单地复制了我们的数据。

ssh 的版本包括:

Ubuntu Server 16.04.4 LTS OpenSSH_7.2p2 Ubuntu-4ubuntu2.4、OpenSSL 1.0.2g 2016 年 3 月 1 日和 Ubuntu Server 18.04.3 LTS OpenSSH_7.6p1 Ubuntu-4ubuntu0.3、OpenSSL 1.0.2n 2017 年 12 月 7 日

我无法在旧的远程机器上获得一个帐户,以便在没有密码提示的情况下以其他用户身份登录到新的云机器。但相反的做法却有效。

我使用 ssh-copy-id 更新了云服务器的 authorized_keys 文件上的用户。奇怪的是:即使文件已经有密钥,它也会不断更新。如果我反复运行 copy-id 命令,它会不断将密钥添加到 authorized_keys。我想知道这是否与主目录不在 /home 中有关。

我尝试将云服务器的.ssh目录的权限设置为700,将authorized_keys文件的权限设置为600。我创建了一个与authorized_keys匹配的authorized_keys2文件。

当远程系统用户尝试 ssh 到云服务器用户时,它仍会提示输入密码。

有人有主意吗?

非常感谢。

更新 ssh -v 在最后有这个...

debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/USER/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/USER/.ssh/id_dsa
debug1: Trying private key: /home/USER/.ssh/id_ecdsa
debug1: Trying private key: /home/USER/.ssh/id_ed25519
debug1: Next authentication method: password

答案1

我找到了问题。正如我所想,它与主目录有关。

问题是:用户主目录组必须与所有者相同。我已将其更改为允许用户 rsync 到彼此的目录。这对于 openssh 的 sshd 来说是不行的。

这是我在 /var/log/auth.log 中收到的错误消息:

Authentication refused: bad ownership or modes for directory /wtecData/sjprod

相关内容