我想在启动时挂载文件服务器上的目录。这是我的/etc/fstab入口:
# mount the fileserver
https://fsrv.company/ /mnt/fileserver davfs user,auto 0 0
手动安装它mount /mnt/fileserver
没问题。但是,由于证书过期,它会发出一个提示,我总是必须回答是:
/sbin/mount.davfs: the server certificate does not match the server name
/sbin/mount.davfs: the server certificate is not trusted
[...]
Accept certificate for this session? [y,N] y
启动 Ubuntu 时应该会安装此设备(由于该auto
选项)。但是,该设备未安装,可能是因为需要输入。文件服务器的所有者不会更新其证书。
我怎样才能自动化这个过程,使得设备在启动时安装并且答案始终是y\n
?
编辑:我确实下载了证书并将其放在.davfs2/证书/并编辑了.davfs2/davfs2.conf(正如@Oli 在下面暗示的那样),但交互式输入仍然存在。
答案1
答案2
答案3
解决此问题的正确方法是更改服务器证书的 CN(身份)以将其设置为您的域(在本例中fsrv.company
)。
但是,您可以通过 ghetto 方式解决这个问题,在启动时添加一个命令(在 Ubuntu 上例如是启动应用程序),以下命令:
echo y | mount /mnt/fileserver
这基本上会为您“自动接受”证书中的错误。
答案4
对于那些在 Google 上找到此页面并需要其他答案的人。适用于 RHEL。这不是处理此问题的最佳方法。
#!/bin/bash
/usr/bin/expect -c "
spawn /bin/mount -t davfs https://fsrv.company/ /mnt/fileserver
expect \"You only should accept this certificate\" { send \"y\n\" }
expect eof
"
以上对证书问题的回答是“是”。我尝试了expect
几种不同的方法,这是唯一能让我expect
回答“是”的方法。