web-dev-qa-db-ja.com

fstabを使用したsshfs:ピアによる接続のリセット

ラップトップ(Ubuntu 13.04)がSSHFSを介してPC(Lubuntu 13.04)のハードドライブにアクセスできるようにしようとしています。 RSAキーを使用して接続しています。

ターミナルでこれを入力すると完璧に機能します:

sshfs my-PC:/a_folder /media/a_folder

しかし、ラップトップを起動すると自動的にマウントされます。そこで、私は自分自身をヒューズグループに追加しました。

Sudo adduser mynickname Fuse

そして、fstabファイルに次の行を追加しました。

sshfs#mynickname@my-PC:/a_folder /media/a_folder Fuse defaults,idmap=user,_netdev 0 0

ラップトップを起動すると、デバイスのリストにa_folderが表示されますが、マウントされていません。 Nautilusからアクセスしようとすると、次のエラーが表示されます。

mount: only root can mount sshfs#mynickname@my-PC:/a_folder on /media/a_folder

試しても同じエラーが発生します

mount /media/a_folder

ターミナルで。

私が試してみると

Sudo mount /media/a_folder

私は得る

read: Connection reset by peer

Fstabエントリのオプションとして「allow_other」を追加しようとしましたが、/ etc/Fuse.confの関連する行のコメントを外しましたが、何も変わりませんでした。

ユーザー「mynickname」はフォルダー/ media/a_folderの所有者であり、rwx権限を持っています。

私はインターネット上の多くのスレッドで、よく似た問題を抱えている人々について調べましたが、これまでのところ何も機能していません。通常、人々はすることさえできません

sshfs my-PC:/a_folder /media/a_folder

エラーが発生することなく、これは私のラップトップで正常に動作します。

洞察とヒントは大歓迎です!ありがとう。

編集:私はしばらく前にこの問題を解決しましたが、この投稿を更新するのを忘れていました。だからここに私のfstabにあるものがあります:

sshfs#mynickname@my-PC:/a_folder /media/a_folder Fuse noauto,_netdev,idmap=user,user,default_permissions 0 0

追加するキーオプションは、思い出すとdefault_permissionsでした。 my-PCで/ a_folder /が属するグループにmynicknameを追加する必要がありました。

10
user171348

あなたが経験している問題は、通常のユーザーはあなたのIDファイルの正しいセットアップを持っているが、rootユーザーはどのsshキーを使うべきかわからないということです。

これを修正するには、接続の試行中に使用するIDファイル/ sshキーをfstabに指示します。

sshfs#user@Host:/mnt/whatever/ /mnt/whatever/        Fuse    user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/USER/.ssh/KEYFILE,idmap=user,allow_other  0   2
8
earthmeLon

実際のデバッグ出力を取得するには、sshfs_debugオプションとdebugオプションの両方をマウントに追加する必要があります。

sshfs#mynickname@my-PC:/a_folder /media/a_folder Fuse defaults,idmap=user,_netdev,debug,sshfs_debug 0 0

これにより、多くのデバッグ情報が得られます。

$ Sudo mount -a
SSHFS version 2.5
Fuse library version: 2.9.2
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-2> <user@box> <-s> <sftp>
user@box's password: 
Server version: 3
Extension: [email protected] <1>
Extension: [email protected] <2>
Extension: [email protected] <2>
Extension: [email protected] <1>
Extension: [email protected] <1>
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
remote_uid = 1001
   INIT: 7.19
   flags=0x00000011
   max_readahead=0x00020000
   max_write=0x00020000
   max_background=0
   congestion_threshold=0
   unique: 1, success, outsize: 40
unique: 2, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 2771
unique: 3, opcode: LOOKUP (1), nodeid: 1, insize: 47, pid: 3371

私の場合、自分のマシンは.ssh/configにのみリストされているため、rootで解決できないことがわかりました。

ところで、idmap=userは現在のユーザー(この場合はルート)に対してのみ機能するようであるため、uidとgidを設定する必要があります。

3

この問題は、sshのホストキーが変更された場合にも発生する可能性があります。

Ssh経由でサーバーに接続してみてください(例:ssh username@hostIP)。次のエラーが表示される場合:

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @    WARNING: REMOTE Host IDENTIFICATION HAS CHANGED!    @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

エラーメッセージの指示に従って古いキーを削除し、sshを介して再度接続してください。エラーが表示されなくなったら、sshfs接続が機能するはずです。

3
Gorka

完全な開示:昔ながらのオタクですが、Linux /オープンソースの世界では新しいブランドがあります

まず、RSAキーについて十分な知識を持っていないため、まだパスワード認証を使用しています。しかし、それはリストのトップに近づいています。

関連するセットアップ情報:VMWare FusionがインストールされたMacBook Proを使用し、その上にUbuntuサーバー10.04 LTSがあります。ほとんどすべてのサーバーインタラクションをMacのターミナルとSSHに依存

Drupalインストールを失敗させた後、以前のスナップショットにロールバックし、以前に使用したばかりのコマンドを突然実行できませんでした:sshfs -o idmap=user -o allow_other [email protected]:/Users/<username>/Documents ~/mountpoint

問題は、キーが同期しなくなったことです。ホストとサーバーの両方で実際にこれを行う必要があるかどうかはわかりませんが、まずknown_hostsファイルのバックアップを作成し、次にknown_hostsファイルを編集してエントリを削除することで、それぞれのローカルキーをすべてクリアしました。
Macでは、このファイルは/Users/<username>/.ssh/known_hostsにありました
Ubuntuでは、このファイルは/home/<username>/.ssh/known_hostsにあります

つまり、要約すると、Ubuntuサーバーを起動した後、すべてがMacターミナルから実行されました。

cp /Users/<username>/.ssh/known_hosts /Users/<username>/.ssh/known_hosts.old
nano  /Users/<username>/.ssh/known_hosts
  # remove extra entries, save file
ssh <username>@ubuntu_server
cp /home/<username>/.ssh/known_hosts, /home/<username>/.ssh/known_hosts.old
nano /home/<username>/.ssh/known_hosts
  # remove extra entries, save file

各システムへの最初のSSHで、SSHはRSAキーの追加を許可するようプロンプトを表示し、その後はすべて動作します。

0
Beau