SSH 自动登录不起作用

SSH 自动登录不起作用

我有一台 Ubuntu 16.04 和一台 Debian 机器,两者都通过网络连接。在我的 Ubuntu 机器上有一个服务正在运行,启动服务时需要重新启动 Debian 计算机。该服务被 Debian 机器调用sudo service debian_client start并执行一堆命令,就像在 Debian 机器上一样。问题是,我需要为每个 ssh 命令输入一次密码,这非常烦人。ssh [email protected] reboot

然后我尝试在~/.sshUbuntu 机器上

ssh-keygen -t rsa
ssh-copy-id [email protected]

之后我通过登录,无需输入密码。但是当通过服务调用 ssh 命令时,我仍然必须输入密码。有人知道为什么以及如何解决这个问题吗,我在网上找不到针对该特定问题的帮助?ssh [email protected]

有趣的是,我修改了脚本,并将脚本的输出与通过 bash 执行的输出进行了比较。不同之处在于脚本始终在 /root 中查找键,如输出所示:ssh -v [email protected]

...
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password

如果我自己通过 bash 执行此操作,则输出内容为:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: user@ubuntucomputer
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).

我无需输入任何密码即可登录。有人能帮忙吗,为什么我的服务在 /root/ 处寻找密钥?非常感谢。

答案1

我的猜测是:

  • 您以用户“user”身份生成了 ssh-key(通过 bash/cli 进行 ssh 登录debug1: Offering RSA public key: user@ubuntucomputer
  • 有一个包含 ssh 密钥的 /home/user/.ssh 文件夹。
  • 该服务以“服务”用户身份执行,主目录为“/root”。

使无密码身份验证正常工作的可能快速方法是:

cd ~; sudo cp -R .ssh /root/

相关内容