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