Autofsとsshfsを使用して、離れたフォルダーを必死に自動マウントしようとしていますが、機能させることができません。 (私はFedora 16の下にいます)
これは動作します:
sshfs [email protected]:/my/data /home/cx42net/data-distant -o uid=1000 -o gid=1000
そこで、sshで使用するRSAキーを定義し、ssh
接続を試しましたが、パスワードを要求しなくても機能しました。次に、前のsshfs
コマンドを再試行しましたが、うまく機能しました(イェーイ!)
だから今、私はautofs
を使いたいのですが、そこから問題が始まります:
/etc/auto.masterファイルの内容:
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#
/misc /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
# "nosuid" and "nodev" options unless the "suid" and "dev"
# options are explicitly given.
#
/net -hosts
#
# Include /etc/auto.master.d/*.autofs
#
+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master
/net /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost
(1000:1000)は私のローカルユーザーuid/gidであり、遠くではありません(取得しようとしているSSHフォルダー)
私の/etc/auto.sshfs:
data-distant -fstype=Fuse,port=22,rw,allow_other :sshfs\#[email protected]\:/mnt/data/dev
Autofsを開始すると、次のようになります/var/log/messages
:
Oct 28 23:59:30 pc-maison autofs[3318]: Starting automount: [ OK ]
したがって、すべてが正常に見えます。
しかし、私は時々この種のメッセージを受け取りました:
Oct 28 23:41:01 pc-maison automount[2453]: create_udp_client: hostname lookup failed: Name or service not known
Oct 28 23:41:01 pc-maison automount[2453]: create_tcp_client: hostname lookup failed: Name or service not known
Oct 28 23:41:01 pc-maison automount[2453]: lookup_mount: exports lookup failed for data-distant
フォルダー/net/data-distant
には、ユーザー "cx42net"(1000:1000)の権限があります。
これを機能させるために私は何が欠けていますか?
Sshfsコマンドがrootユーザーで機能することを確認してください。
RootユーザーがsshIDキーを設定していることを確認してください。 autofsを介したsshfsのマウントでは、実際のマウントにrootユーザーが使用されます。
これは、これらのマウントを使用している1人のユーザーがいるデスクトップまたはラップトップユーザーのみを対象としています。
注意!独自のuidとgidを使用し、/ auto/mehtod/addressを使用する優先マウントポイントを指定します
/auto/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=60,--ghost
#!/bin/bash
# Shell script that acccepts one argument, namely userid@server
# env >> /tmp/env_check
# whoami >> /tmp/env_check
key=$1
USER='your_local_user_used_for_ssh_identity_file'
REMOTEDEFAULT='default_to_this_user_otherwise_root'
key=${key//[: #]/}
# add user
[[ ! "$key" =~ "@" ]] && key="${REMOTEDEFAULT}@${key}"
case $key in
${REMOTEDEFAULT}@.Trash*)
exit 1;;
*)
(
echo "-fstype=Fuse,idmap=user,rw,nodev,nonempty,transform_symlinks,noatime,allow_other,IdentityFile=/home/${USER}/.ssh/id_dsa,max_read=65536\\"
echo -e "\t /uhome :sshfs\#$key\:\\"
echo -e "\t /tmp :sshfs\#$key\:\/tmp\/\\"
echo -e "\t /rootfs :sshfs\#$key\:\/")
esac
## this is a bit more complex. It creates subfolders to autofs-mount/remotename
## /uhome = your remote homedirectory
## /rootfs = remote root '/'
## /tmp = remote tmp # same as /roots/tmp
次に、アクセスするフォルダーにリンクしますln -s /auto/sshfs/[email protected]/uhome/ remote-home