Chr*_*ith 6 server fstab mount sshfs fuse
我有一个运行 Ubuntu 12.04.4 的无头服务器,它需要在没有用户干预的情况下重新启动后重新启动。现有的手动过程涉及通过 sftp 查看远程服务器上的文件并操作某些文件。sftp 站点的身份验证使用用户名和密码。我想通过直接在需要文件的服务器上安装远程卷来删除进入 sftp 服务器的手动步骤,从而自动执行此过程。
请注意,我没有 ssh 身份文件,因为未使用基于密钥的身份验证。我无法更改远程端以使用密钥身份验证;我需要使用现有的用户名和密码。我在那里发现的大多数指南只涉及使用基于密钥的身份文件。
当前的 fstab 配置:
sshfs#username@secureftp.example.net:/SecureFTP /my/localpath fuse allow_other,uid=root,gid=clientfiles,umask=0770
Run Code Online (Sandbox Code Playgroud)
以交互方式挂载时,它会提示输入密码。我需要服务器能够从重新启动中恢复,而无需有人照看并输入密码,因此它需要在没有任何提示的情况下工作。除了提示之外,我不知道如何获取密码。理想情况下,我可以像使用credentials=<file name> cifs选项一样指定一个带有用户名和密码的凭证文件。
我已经尝试过credentials=并password=作为安装选项,但它们似乎没有被定义为sshfs; 我明白了fuse: unknown option。
password_stdinsshfs有一个选项,但我不确定它如何应用于 fstab。
sudo su或sudo在需要时申请。您可以简单地使用/etc/fstab来预先定义您的安装选项等等。
例子:
USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY /LOCAL/MOUNTPOINT fuse.sshfs defaults,password_stdin,_netdev 0 0
Run Code Online (Sandbox Code Playgroud)
请记住,默认安装选项远非完美。
例如:重新连接很重要。请参阅: https: //github.com/libfuse/sshfs/issues/101
包含这些选项的示例(取自 Github 问题):
sshfs#user@storage.cz:/content/ /mnt/srv fuse password_stdin,defaults,user,allow_other,reconnect,delay_connect,ConnectTimeout=5,ServerAliveInterval=5,IdentityFile=/root/.ssh/id_rsa_storage 0 0
Run Code Online (Sandbox Code Playgroud)
完成后,您需要一个包含此唯一内容的简单脚本,例如:
#!/bin/bash
echo "passwordgoeshere" | mount /mnt/srv
Run Code Online (Sandbox Code Playgroud)
让我们将其保存在您的根用户下,举个例子:/root/mount_sshfs.sh
现在您需要使其可执行:chmod +x /root/mount_sshfs.sh
Timeout waiting for prompt错误:您应该尝试运行该脚本一次以查看其是否有效。如果它没有退出并且您最终收到错误,请尝试以 root 身份Timeout waiting for promptssh 进入远程主机。如果您以前从未这样做过,sshfs 将提示将主机添加到文件中,此时脚本将等待响应,直到达到超时。known_hosts
现在您所需要的只是cron或systemd在挂载时执行此操作。
对于cron,像这样的简单条目就可以工作:
@reboot /root/mount_sshfs.sh
使用系统:
您必须创建脚本。参见上面。
您必须创建一个新的 Systemd 服务脚本。
一个例子是:/etc/systemd/system/mount_network.sh
文件内容:
[Unit]
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/root/mount_sshfs.sh
[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)
笔记:
来源: https: //linuxconfig.org/how-to-automatically-execute-shell-script-at-startup-boot-on-systemd-linux
| 归档时间: |
|
| 查看次数: |
10323 次 |
| 最近记录: |