次の行を使用して/ etc/fstabにsshfsマウントを入力しようとしています。
sshfs#[email protected]:/media/usb0 /media/ExtHD Fuse defaults,nonempty,allow_other 0 0
このボリュームがブート時にマウントされるようにします。起動後、何も起こりませんが、Sudo mount -aコマンドを使用すると、常にパスワードの入力を求められます。 SSHキーを設定して192.168.0.2のコンピューターに転送しました。パスワードを入力せずに通常のSSHにログインできます。ブート時にボリュームが自動的にマウントされるように、Fuseがパスワードを要求しないようにするにはどうすればよいですか?
それでも効果がある場合は、Arch Linuxを実行しているラップトップからDebianを実行しているホームサーバーに接続しようとしています。ありがとう
鍵ベースの認証は、ssh
プロセスが鍵を見つけられる場合にのみ機能します。あなたはおそらくあなたのホームディレクトリにあなたの鍵を持っています。しかし、どこでキーを探すかをsshfs
に伝えたことはありません。ブート時には、すべてのファイルシステムがroot
マウントされるため、キーは/root/.ssh
にあるか、/root/.ssh/config
で参照される必要があります。
ログイン後、自分のユーザーとしてファイルシステムをマウントすることをお勧めします。これを、ログイン時に実行されるスクリプトに入れます。
ssh-add ~/.ssh/name_of_key.id_rsa
sshfs homeserver:/media/usb0 ~/exthd
~/.ssh/config
にhomeserver
というエイリアスを追加します。
Host homeserver
HostName 192.168.0.2
User oli
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 とdelay_connectここから https://askubuntu.com/questions/326977/sshfs-is-not-mounting-automatically-at-boot-despite-etc-fstab -設定 。
このチュートリアルを使用してUSER_IDとUSER_GIDを取得しました: https://kb.iu.edu/data/adwf.html
UnixでユーザーのUIDまたはGIDを見つけるには、idコマンドを使用します。特定のユーザーのUIDを見つけるには、Unixプロンプトで次のように入力します。
id -u username
Usernameを適切なユーザーのユーザー名に置き換えます。ユーザーのGIDを見つけるには、Unixプロンプトで次のように入力します。
id -g username
また、完全なチュートリアルが必要な場合は、 https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04/ に投稿されます。 =
同じ問題がありました。
以前にssh-keygen
、次にssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
でsshキーを設定していた
sshはパスワードを要求せずに正常に機能したため、sshfsが依然としてパスワードを必要としている理由について混乱しました...
つまり、
ssh [email protected]
正常に動作しましたが、sshfsが入力時にパスワードを要求しました
Sudo sshfs [email protected]:/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 [email protected]:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other
実際には、fstabではなくpassword_stdinオプションを使用して、起動時に公開鍵なしでSSHFSをマウントできます。
必要なのは、小さなスクリプトファイルと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をrootとして使用して、次の行を入力します。
@reboot /root/automount.sh
上で述べたように、プレーンテキストのパスワードが含まれているため、誰もファイルを読み取れないようにする必要があります!
-rwx------ 1 root root 526 Nov 21 12:57 automount.sh
現在、再起動するたびに、システムは資格情報を使用してSSHFSを自動的にマウントします。
パスワードなしで起動したい場合は、パスワードなしで公開/秘密sshキーを作成する必要があります。これはお勧めできませんが、少なくともrootユーザーとしてchmod 400
を使用してこれらのファイルを保護できます。
その後、通常どおり、公開鍵をマウントポイントにコピーする必要があります。
ssh-copy-id -i my_new_key.pub [email protected]
そして、このキーを使用するようにsshfsに指示する必要があります。
[email protected]:/media/usb0 /media/ExtHD Fuse defaults,nonempty,allow_other,'IdentityFile /path/to/private/key' 0 0
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キーをローカルに作成していることを確認し、ssh-copy-id
を使用してキーをリモートサーバー(ホスト名)にコピーします。
ローカルサーバーuser_id
で、ユーザーのgroup_id
と/etc/passwd
を見つけることができます。
また、ユーザーがpath/to/localmountpoint
フォルダーで読み取り/書き込み権限を持っていることを確認してください。
キーをサポートしていないサーバーに接続しようとしていて、それを自動化したい場合は、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
フラグで機能するはずです。ブート時にマウントし、手動でパスワードを入力する必要はありません。
同じ問題があった。結局のところ、typeを単純なFuseに設定するか、(より可能性が高い)オプションを次のように切り捨てるのに役立ちました。
Fuse reconnect,idmap=user,allow_other,default_permissions
最後に私のために働いた