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

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

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

おすすめ記事