背景
- 由于 docker 配置默认存储位置空间太小,所以要把容器中的文件使用数据卷的方式映射到其它位置
- 将用户根目录映射出去,所以配置互信的 .ssh 目录也会被映射出去
问题现象
- 使用 ssh-copy-id 执行后,将自己的公钥发送到了服务端,但还是提醒要输入密码。
- 在连接时打印详细连接信息:
ssh -vvv name@host
- 上图显示使用了 publickey 认证,但是认证没有通过
调试步骤
- 使用 root 用户启动 sshd 的调试模式,并且不要挂在后台
/sbin/sshd -d
- 在客户端再次尝试连接,能够在服务端看到错误原因
解决方法
- 进入 .ssh 目录,将权限修改为下图
注:. 是本层目录,.. 是上层目录,权限也要进行配置