ログイン/起動時にリモートディレクトリを自動的にマウントする方法

ログイン/起動時にリモートディレクトリを自動的にマウントする方法

sshfs起動するたびにリモートディレクトリをマウントするために使用します。私はこれらの短いコマンドを.bashrcに入れるつもりでしたが、正しい方法ではないようです™。

sshfsログイン時にこれを実行する正しい方法は何ですか?

答え1

もちろん、.bashrc間違った。対話型シェル(シェルがbashの場合)を実行している端末を開くと、このファイルが読み込まれます。

起動時に sshfs マウントを実行できますが、これは対話型認証が必要ない場合にのみ機能します。ほとんどの設定では、これはパスワードキーがないことを意味します。 (他の方法もありますが、通常はNFSなどの機能が既に存在する信頼できるネットワーク内でのみ機能します。)

  • ルートであれば、アイテムを追加できます。/etc/fstab。これは、ルートを使用して~/.sshキーと既知のホストを検索します。

    example.com:/remote/path /mount/point fuse.sshfs idmap=user,uid=1234
    
  • 一つ入れてもいい@reboot クローンタブ項目

    @reboot sshfs -o idmap=user example.com:/remote/path /mount/point
    

リモートサーバーに送信するためにパスワードを入力する必要がある場合は、まずログインして機能するユーザーインターフェースが必要です。鍵のロックを解除するためにパスワードを入力する必要がある場合も同様です。

ほとんどのウィンドウマネージャとデスクトップ環境では、ログイン時にカスタムコマンドを実行できます。次のコードスニペットを実行できます(現在、ほとんどの人が実行しているSSHエージェントが起動していると仮定)。

SSH_ASKPASS=ssh-askpass ssh-add ~/.ssh/id_rsa
mount | grep ' /mount/point ' ||
sshfs -o idmap=user example.com:/remote/path /mount/point

mount | grep ' /mount/point ' ||複数のパスでログインしている場合は、ファイルシステムがマウントされていることを確認してください。または、プロキシを使用せずに次の操作を行います。

mount | grep ' /mount/point ' ||
SSH_ASKPASS=ssh-askpass sshfs -o idmap=user example.com:/remote/path /mount/point

プログラムがない場合、ssh-askpass別の方法はターミナルを開いてプログラムをインストールすることです。

xterm -e 'ssh-add ~/.ssh/id_rsa'
mount | grep ' /mount/point ' ||
sshfs -o idmap=user example.com:/remote/path /mount/point

テキストモードログインの場合は、シェルが対話型の場合にのみ実行してくださいssh-add~/.profile

case $- in
  *i*)
    ssh-add ~/.ssh/id_rsa
    ;;
esac
sshfs -o idmap=user example.com:/remote/path /mount/point

答え2

起動時にファイルシステムをマウントするには、そのファイルシステムを/etc/fstab。私はリモートサーバーのNFSリポジトリでこれを定期的に実行します。

10.0.0.1:/work /mnt nfs rw 0 0

この形式はうまく機能します。あなたのIPとマウントしたいディレクトリ。次に、リモートサーバーの適切な場所にインストールします。fstabインストール中にこれを行う最良の方法です。あるいは、起動時に実行される小さなスクリプトがあるかもしれません。

答え3

このユースケースでは簡単に使用できます。afuse、FUSEsshfsベースの自動マウンター[1]

ディストリビューションからafuseユーザーサービスユニットファイルを簡単に使用できます。他の質問に投稿されたように

(再)生成することもできます。によって数行の単純なシェルスクリプト[2]~から~/.profile

[1]:afuseほとんどのLinuxディストリビューションのパッケージマネージャで利用可能です。

[2]:このリンクスクリプトは私ですこの設定をsystemdユーザーサービスに切り替える方法に関する質問

関連情報