我想在每次 Linux 启动时自动在远程计算机上安装文件系统。但是我总是需要使用密码身份验证,因为我不能use ssh-copy-id
。如何使其自动进行而无需手动交互?
答案1
这对我有用:
echo $mypassword | sshfs -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host mountpoint -o workaround=rename -o password_stdin
答案2
您可以使用该sshpass
命令通过密码身份验证登录,但非交互方式:
echo "MyPassword" > passwordfile
chmod 600 passwordfile
sshpass -f passwordfile [ssh parameters]
不建议使用此技术,因为它会导致许多安全问题。从sshpass
手册页:
安全地存储密码几乎是不可能的,sshpass 的用户应该考虑 ssh 的公钥身份验证是否提供相同的最终用户体验,同时涉及更少的麻烦且更安全。
然后,您可以使用ssh_command
sshfs 选项来使用 sshpass 而不是普通的 ssh
sshfs user@host mountpoint -o ssh_command='sshpass -f passwordfile ssh'
答案3
apt安装sshfs sshpass
纳米 /etc/fstab
sshfs#remoteuser@remotehost:/remoteshare /mnt/remoteshare fusion
_netdev,port=65022,idmap=user,allow_other,ssh_command=sshpass\040-f\040/root/.ssh/host.password\040ssh,reconnect,ServerAliveInterval= 60 0 0
纳米 /root/.ssh/host.password
我的远程用户密码清除
挂载-a
重要部分是挂载选项中的 \040