I'll try to keep this simple.
Here's what works:
Mounting root@wherever:/ with sshfs while I'm root.
But if I'm root and I try
sshfs test@somewhere:/ /home/me/test -o idmap=user
or
sshfs test@somewhere:/ /home/me/test -o idmap=allow_other
I get no error message but if I try looking at the mounted "test" directory I get:
ls: reading directory test: Permission denied
Also I can ssh into the test@somewhere while I'm root, no problem.
I tried adding "user_allow_other" to /etc/fuse.conf but I don't think that matters here because I'm root.
What's strange, it was just working a minute ago if I was non-root mounting test@somewhere, but that just stopped working after I opened a new terminal.
Just to be clear, I would like to mount somebody@wherever:/ when I'm root. I don't think it's a password or "key" problem, as I'm getting the same result with different remote servers.
I just gave the remote "test" directory one file. I'm using "test" on a server that I know works till I figure out what I'm doing wrong.
My local machines are Debian Squeeze. I'm sure the solution is easy, but most questions in Google are trying to do the opposite (works in root, but not as non-root) so I figured this was worth asking.
Best Answer
The problem was the forward slash:
sshfs test@somewhere:/ /home/me/test
Should have been:
sshfs test@somewhere: /home/me/test
In other words, the user "test" didn't have access to the root directory. Oops. I figured ":/" would just take me to the root directory of user "test" but apparently not.
I got the idea following the steps here: http://www.howtoforge.com/mounting-remote-directories-with-sshfs-on-debian-squeeze