web-dev-qa-db-ja.com

RSAキーを使用してオンデマンドでsshファイルシステムを自動マウントする方法

Raspberry Pi(/home/pi/server_folder)からローカルフォルダー(/home/my_name/raspberrypi)にフォルダーを自動マウントしようとしています。空のrsaキーを設定するときにsshfs(fstabの自動マウント)でこれを行うことができますが、123などの実際のキーを使用しようとすると、RaspberryPiファイルシステムがマウントされません。パスフレーズを指定する必要があるため、これは非常に明白ですが、最初に/home/my_name/raspberrypiにアクセスしようとしたときにパスフレーズを要求する方法はありますか、それとも同様のことをしますか?誰かが私のラップトップを手に入れても、rsaキーを空白のままにすると、RaspberryPiにアクセスするためにパスワードなどを入力する必要がないためです。 autofsautosshfsを調べましたが、autosshfsがダウンロードされず、autofsが実際のrsaキーを使用してマウントする方法を説明していません(ガイドが見つかりません)方法について)。最新バージョンのArchLinuxを使用しています。 fstabエントリは次のとおりです。

[email protected]:/home/pi/server_folder/ /home/my_name/raspberrypi  Fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/my_name/.ssh/id_rsa,allow_other,reconnect 0 0

これはArchwikiが行うように言っていることです(しかし、あまりよく説明されていません)。

3
Vityou

SSHFSはFuseに基づいているため、ルート以外のオートマウンターを使用する方が簡単です。 afuse を使用します。これは、設計された目的とほぼ同じです。 1回限りのセットアップ:

mkdir ~/.afuse
ln -s .afuse/raspberrypi/server_folder ~/raspberrypi

オートマウンターを起動するには:

afuse -o mount_template="sshfs %r:/ %m" -o unmount_template="fusermount -u -z %m" ~/.afuse

afuseを開始するときに、SSH_AUTH_SOCK変数が設定されていることを確認してください。つまり、ssh-agentの後に開始する必要があります。 ssh-addを実行してキーをSSHエージェントにロードすると、SSHFSディレクトリにアクセスできるようになります。

Gillesの正解を拡張し、「 afuse の(プロファイル)スタートアップ(スクリプト)への統合」に関する彼の回答へのコメントで取り上げられたいくつかのさらなる考えに対処するには:

オンデマンドを有効にできます sshfs マウントを有効にする スクリプト呼び出しを例に追加します。~/.profile または ユーザーレベルのsystemdサービスユニットを作成

私は systemdanswer を支持します:~/.config/systemd/user/afuse.service

[Unit]
Description="SSHFS via Afuse automounter"
AssertPathExists=%h/scp/
AssertFileIsExecutable=/usr/bin/afuse
AssertFileIsExecutable=/usr/bin/sshfs

[Service]
Type=forking
WorkingDirectory=%h/scp
ExecStart=/usr/bin/afuse \
    -o mount_template="sshfs -o ServerAliveInterval=10 -o reconnect %%r:/ %%m" \
    -o unmount_template="fusermount -u -z %%m" .
Restart=always
PrivateTmp=true
#NoNewPrivileges=true
#Environment=

[Install]
WantedBy=default.target
0
Alex Stragies