sshfsは常にfstabでパスワードを要求しますか?


20

次の行で/ etc / fstabにsshfsマウントを入力しようとしています。

sshfs#oli@192.168.0.2:/media/usb0 /media/ExtHD fuse     defaults,nonempty,allow_other 0 0

そのため、このボリュームはブート時にマウントされます。起動後は何も起こりませんが、コマンドsudo mount -aを使用すると、常にパスワードの入力を求められます。SSHキーをセットアップし、192.168.0.2のコンピューターに転送しました。パスワードなしで通常のsshにログインできます。ブート時にボリュームが自動的にマウントされるように、fuseがパスワードを要求しないようにするにはどうすればよいですか?

うまくいけば、Arch Linuxを実行しているラップトップからDebianを実行しているホームサーバーに接続しようとしています。ありがとう

回答:


13

キーベースの認証は、sshプロセスがキーを見つけることができる場合にのみ機能します。おそらく、ホームディレクトリにキーがあります。しかし、あなたはsshfsどこで鍵を探すべきか言ったことはありません。ブート時には、rootすべてのファイルシステムがマウントされるため、キーはであるか、で/root/.ssh参照されて/root/.ssh/configいる必要があります。

ログインした後、自分のユーザーとしてファイルシステムをマウントすることをお勧めします。ログイン時に実行されるスクリプトにこれを入れます:

ssh-add ~/.ssh/name_of_key.id_rsa
sshfs homeserver:/media/usb0 ~/exthd

と呼ばれるエイリアスを置きhomeserverます~/.ssh/config

Host homeserver
HostName 192.168.0.2
User oli

ああ、それはそれを行うより良い方法です。ログインスクリプトに入れることは考えていませんでした。ありがとう!
準深刻な

~マウントポイントでの使用には注意してください。ターミナルの代わりにパネルのランチャーアイコンを使用してコマンドを実行している~場合/home/、コマンドは評価されず、コマンドは失敗します。
ニック14年

@Nick GUIを使用している場合は、自動マウント専用のツールがあるかもしれません。私の答えに従えば、2つのコマンドをシェルスクリプトに入れることになります。ランチャーアイコンはそのスクリプトを実行します。
ジル 'SO-悪であるのをやめる' 14年

10

次の構文を標準ユーザーとして使用することで、Ubuntu 14.04でfstabを使用してsshfsをマウントすることができました(CAPSの内容は入力する変数です)。

USER@HOST:/REMOTE_DIR /LOCAL_DIR fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID,gid=USER_GID 0 0

これは、https://superuser.com/questions/669287/automount-sshfs-using-fstab-without-mount-aにある情報と、ここから/ubuntu/のdelay_connectを追加した情報の組み合わせです。 326977 / sshfs-is-not-mounting-automatically-at-boot-at-dにもかかわらず-etc-fstab-configuration

このチュートリアルを使用して、USER_IDとUSER_GIDを取得しました:https ://kb.iu.edu/data/adwf.html

UnixでユーザーのUIDまたはGIDを見つけるには、idコマンドを使用します。特定のユーザーのUIDを見つけるには、Unixプロンプトで次のように入力します。

id -u username

ユーザー名を適切なユーザーのユーザー名に置き換えます。ユーザーのGIDを見つけるには、Unixプロンプトで次のように入力します。

id -g username

また、完全なチュートリアルが必要な場合は、https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04/に投稿されます


そのリンク:variux.com/blog/?p=161はもはや働いていないようです...
クリスチャンカスット

@ChristianMuggli、コメントありがとうございます。チュートリアルのアドレス全体を更新しました。ただし、私は長い間チュートリアルをテストしていません。variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04
variuxDavid

5

同じ問題がありました。

以前にsshキーをセットアップしてssh-keygenからssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.100

sshはパスワードを要求せずに正常に機能したため、sshfsがまだパスワードを必要としていた理由について混乱しました...

つまり、

ssh root@192.168.0.100 

うまくいきましたが、入力したときにsshfsがまだパスワードを要求しました

sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other

上記のGillesが説明しsshfsたように、ルートディレクトリで必要なキーを探していました。

したがって、ホームフォルダーの非表示の.sshフォルダーからルートの.sshフォルダーにファイルid_rsaおよびid_rsa.pubをコピーするだけでこれを解決しました。

cp /home/pi/.ssh/id_rsa /root/.ssh/
cp /home/pi/.ssh/id_rsa.pub /root/.ssh/

その後、次のように入力しても、パスワードを気にすることなく機能しました。

sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other

これは、セキュリティの観点からすると本当に悪いです。ルート用に別のキーセットを作成し、これをauthorized_keysに追加することをお勧めします。秘密鍵をコピーしないでください。
クリスチャンウルフ

3

パスワードなしで起動する場合は、パスワードなしで公開/秘密のsshキーを作成する必要があります。推奨されていませんが、少なくともchmod 400rootユーザーとしてこれらのファイルを保護できます。

その後、通常どおり、マウントポイントに公開キーをコピーする必要があります。

ssh-copy-id -i my_new_key.pub oli@192.168.0.2

そして、このキーを使用するようにsshfsに指示する必要があります。

oli@192.168.0.2:/media/usb0 /media/ExtHD fuse     defaults,nonempty,allow_other,'IdentityFile /path/to/private/key' 0 0

2
SSHFS version 2.8 fuse: unknown option 'SSHOPT=IdentityFile /home/ravi/.ssh/id_boxy_rsa'
トム・ヘイル

1
@TomHaleの代わりに,SSHOPT='IdentityFile /path/to/private/key'単純に,IdentityFile /path/to/private/key
プルキッチンガル

2

次の行を追加して、Debian 8.2で完全に機能しますfstab

user@hostname:/path/to/localmountpoint /path/to/remotemountpoint fuse.sshfs _netdev,user,port=(if_not_22),idmap=user,transform_symlinks,identityfile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=user_id,gid=group_id 0 0

ホスト名は、リモートサーバー(マウント元のフォルダー)ユーザーがローカルとリモートで同じであることを示します。(より簡単に)

キーをリモートサーバー(ホスト名)にコピーしてssh-keygen使用ssh-copy-idするために、ユーザーのsshキーをローカルで作成したことを確認します。

あなたは見つけることができますuser_idし、group_idローカルサーバー内のユーザーのために/etc/passwd

また、ユーザーがフォルダ内の読み取り/書き込み権限を持っていることを確認してくださいpath/to/localmountpoint


2

password_stdinオプションを使用すると、起動時に公開鍵なしでSSHFSをマウントできますが、fstabは使用できません。

必要なのは、小さなスクリプトファイルとcronです。

公開鍵は常により良い選択であることに注意してください。ただし、公開鍵が機能しない場合があります(私はこの問題を何度か経験しました)。スクリプトファイルにはパスワードがプレーンテキストで含まれていることに注意してください。したがって、rootのみがこのファイルに対する許可を持っていることを確認する必要があります!

スクリプトファイルは次のようになります(/root/automount.sh):

#!/bin/sh
if [ $(mount | grep 'user@server:/folder' | wc -l) -ne 1 ]
then
    echo 'PASSWORD' | sshfs user@server:/folder /mnt/mountpoint -o password_stdin,allow_other
    echo 'SSHFS has been mounted.'
else
    echo 'SSHFS is already mounted.'
fi

起動時にこれを実行するには、crontabをルートとして使用し、次の行を入力します。

@reboot /root/automount.sh

上記のように、プレーンテキストのパスワードが含まれているため、絶対に誰もファイルを読み取れないようにする必要があります。

-rwx------ 1 root root 526 Nov 21 12:57 automount.sh

今では、再起動するたびに、システムは資格情報を使用してSSHFSを自動的にマウントします。


0

同じ問題があった。最終的には、タイプを単純なヒューズに設定するか、(おそらく)オプションを切り捨てて次のいずれかを行うのに役立ちました。

fuse reconnect,idmap=user,allow_other,default_permissions

最後に私のために働いた


0

あなたがキーをサポートしていませんサーバーに接続しようとしているとあなたはまだそれが自動になりたい場合は、使用することができsshpassさえしてあなたのためにパスワードを入力することsshfsもでfstab

たとえば、次のようなものを次のように配置した場合/etc/fstab

sshfs#username@host:/  /mnt/here   fuse   auto,ssh_command=sshpass\040-f\040/root/.ssh/host.password\040ssh  0  0

次に、で指定したファイル名にパスワードを入れます/etc/fstab

echo 'secret' > /root/.ssh/host.password

インストールされていることを確認してくださいsshpass

pacman -S sshpass  # if you're using Arch Linux

その後、動作するはずです:

mount /mnt/here

sshキーを確認するために最初に一度サーバーにアクセスする必要がある場合がありますが、その後は手動操作なしで機能し、autoフラグfstabを手動で入力する必要なく起動時にマウントされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.