我生成了一个密钥并将其复制到我的目标:
ssh-keygen
ssh-copy-id username@hostname
我将密钥的位置保留为默认值,并且没有设置任何密码。
在那之后的一小段时间里,我能够ssh username@hostname
在没有提示输入密码的情况下完成操作,然后由于某种原因它停止工作。
答案1
如果公钥身份验证不起作用:请确保在服务器端,您的主目录 ( ~
)、~/.ssh
目录和~/.ssh/authorized_keys
文件都是可写的仅由其所有者。特别是,它们中的任何一个都不能被组写入(即使该用户单独在组中)。chmod 755
或者chmod 700
是可以,chmod 770
不是。
出现问题时应检查哪些内容:
- 运行
ssh -vvv
可以看到很多调试输出。如果您发布问题询问为什么无法使用 ssh 连接,请包含此输出(您可能想要匿名主机名和用户名)。 - 如果可以的话,请检查服务器日志,通常为
/var/log/daemon.log
或/var/log/auth.log
或类似内容。 - 如果公钥身份验证不起作用,请再次检查权限,尤其是组位(参见上文)。
答案2
目标的主目录是755 drwxr-xr-x
.将其更改为组可写775 drwxrwxr-x
破坏了无密码设置。
答案3
确保权限正确后,重新发送密钥,它仍然无法正常工作。
然后我偶然发现了这个我以前没有做过也没有看到任何人提到过的事情。
无法将 -o allowed_other 与 sshfs 一起使用(在 fusion.conf 中启用选项)
启用后,我在没有 sudo 的情况下运行了 sshfs 命令,一切都完美运行。
答案4
newuser
假设 RHEL/CentOS,并假设您对用户想要 ssh 的远程服务器具有管理员访问权限。
获取newuser's
现有id_rsa.pub
并做好准备。
按照步骤:
useradd newuser
mkdir /home/newuser/.ssh
vi /home/newuser/.ssh/authorized_keys
# copy newuser's id_rsa.pub into authorized_keys and save
chmod 640 /home/newuser/.ssh/authorized_keys
chmod 700 /home/newuser/.ssh/
chmod 700 /home/newuser/
chown newuser:newuser -R /home/newuser/
已newuser
尝试登录。