web-dev-qa-db-ja.com

autofsを使用したsshfsの自動マウントが失敗するのはなぜですか?

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)の権限があります。

これを機能させるために私は何が欠けていますか?

3
Cyril N.

ショート:

Sshfsコマンドがrootユーザーで機能することを確認してください。

より長いです:

RootユーザーがsshIDキーを設定していることを確認してください。 autofsを介したsshfsのマウントでは、実際のマウントにrootユーザーが使用されます。

これは、これらのマウントを使用している1人のユーザーがいるデスクトップまたはラップトップユーザーのみを対象としています。

auto.master行

注意!独自のuidとgidを使用し、/ auto/mehtod/addressを使用する優先マウントポイントを指定します

/auto/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=60,--ghost

auto.sshfsこれは1つのマウントよりも少し一般的です

#!/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

2
Manwe