sshfs
私はSSHを介していくつかのPythonプロジェクトを含むフォルダを私の~/
ディレクトリにインストールしました。
$ mkdir -p ~/mount/my-projects
$ sshfs [email protected]:/home/user/my-projects ~/mount/my-projects
予想通り、ほとんどのコマンドを実行できます。
$ ls ~/mount/my-projects
some-python-project
しかし、これで何でもしようとすると、sudo
許可が拒否され失敗します。
$ sudo ls ~/mount/my-projects
ls: cannot access /home/user/mount/my-projects: Permission denied
私が実際に達成したいのは、ローカルコンピュータでPythonパッケージのインストールスクリプトをテストすることです。
$ cd ~/mount/my-projects/some-python-project
$ sudo python setup.py install
答え1
allow_other
sshfsオプションを使用する必要があると思います。これを行うには、次のようにsudoを使用して呼び出す必要があります。
sudo sshfs -o allow_other user@myserver:/home/user/myprojects ~/mount/myprojects
このオプションがないと、sshfsを実行しているユーザーだけがマウントにアクセスできます。これはヒューズの限界です。詳細については、入力してくださいman fuse
。
/etc/fuse.conf
また、(少なくともUbuntuでは)「fuse」グループのメンバーである必要があります。それ以外の場合は、上記のコマンドが「sudo」なしで実行されたときにアクセスできないことを示すメッセージが表示されます。
答え2
sshfs
ユーザーモードプロセスなので、使用する必要はありませんsudo
。
/root/.ssh
sudo で実行し、SSH 鍵認証を使用する場合、および以下から鍵を検索します。いいえユーザーの/home/myuser/.ssh
。
利用可能な~/.ssh/config
ファイルにも同様に適用されます。sshfs
あなたが好きなら~/.ssh/config
:
Host remotehost
HostName 111.22.33.44
User root
Port 1234
IdentityFile ~/.ssh/id_rsa
その後、次のコマンドを使用して一般ユーザーとしてリモートホストをマウントできます。
sshfs remotehost: local_dir
ルートで実行するには、-o IdentityFile /home/myuser/.ssh/id_rsa
「raw」コマンドに追加するか、ユーザーのSSHキーへのフルパスを使用して生成できますsshfs
。/root/.ssh/config
Host remotehost
HostName 111.22.33.44
User root
Port 1234
IdentityFile /home/myuser/.ssh/id_rsa
これでsshfs remotehost: local_dir
ルートでも動作します。
インストールすると
.ssh/config
(リモートからローカルに)または(ローカルからリモートに)を使用してホスト間でフォルダ全体をコピーできるため、単一のワンタイムタスクの場合は必要ありません。scp -r remotehost:remotedir localdir
scp -r localdir remotehost:remotedir
sshfs
相対リモートパスを使用している場合、これはユーザーのホームフォルダに基づいており、
remotehost:remotedir
次のようになります。remotedir
remotehost:remotedir
remotehost:/home/myuser/remotedir
答え3
allow_other
私にとって問題を解決したのは、次のようにコマンドにオプションを追加することでした。
$ sshfs -o allow_other [email protected]:/home/user/my-projects ~/mount/my-projects
これによりエラーが発生する可能性があります。
オプションallow_otherは、/etc/fuse.confに "user_allow_other"が設定されている場合にのみ許可されます。お気に入りのテキストエディタを使用してこのヘッダを解決するには、/etc/fuse.confに移動してコメントを外します(次の#削除)。
user_allow_other
問題が解決し、sshfs
正常に実行できる場合は本当に良いです!それ以外の場合は、次のコマンドを使用してサーキットブロックグループにユーザーを追加する必要があります。
$ sudo usermod -a -G fuse mark
ヒューズグループが存在しないというエラーが発生した場合は、次の方法で簡単にグループを作成できます。
$ sudo groupadd fuse