web-dev-qa-db-ja.com

ユーザーのホームディレクトリをSSHFSマウントできません

Sshfsとpam-mountを使用して、集中型ホームディレクトリサーバーをセットアップしようとしています。

現在、私はこの時点で立ち往生しています:

リモートホームディレクトリsshfsをマウントしようとすると、スタックします。

d_inevitable@laptop:~$ sshfs -o nonempty,debug server: .
Fuse library version: 2.9.0
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0

この時点でフリーズします。

これは、ホームディレクトリに~/.sshが含まれているためと思われます。したがって、sshfs -o nonempty server:.ssh .sshを試してみると、同じことが起こります。

Fuseはどういうわけかマウントを初期化しますが、sshはconfigディレクトリから何かを必要とするので、そこから読み取ろうとします。ヒューズはその読み取りをブロックするだけで、デッドロックが発生します。

Sshfsは~/.sshからどのようなものを必要としますか?

~/.sshからすべての読み取り/書き込み権限を削除して、他のディレクトリにマウントしようとしました。それはうまくいきました。デバッグ出力は、.ssh/known_hostsへの書き込みについてのみエラーを出しました。

2
d_inevitable

Fuseは最初にマウントを開始し、次にsshプロセスを開始します。デフォルトでは、sshはユーザーのホームから~/.ssh/ssh_config~/.ssh/known_config~/.ssh/id_*ファイルを読み取るため、これにより問題が発生します。この動作は変更できます:

  1. ~/.ssh/ssh_configは、デフォルトのユーザーごとの構成ファイルです。別のユーザーごとの構成ファイルは、-Fオプションを使用して指定するか、-F /dev/nullを使用してユーザーごとの構成ファイルを指定しないでください。
  2. ~/.ssh/known_configは、ホストキーの保存と確認に使用されます。 -o UserKnownHostsFile=/dev/nullを使用し、/etc/ssh/ssh_known_hostsにホストキーを手動で追加するか、-o StrictHostKeyChecking=noを使用できます。
  3. ~/.ssh/id_*ファイルは、デフォルトではクライアント認証に使用されるIDファイルです。 IDファイルを使用して認証する場合は、ホームディレクトリの外部に保管し、-o IdentitiesOnly=yes -o IdentityFile=<path to private key>を使用する必要があります。または、-o IdentitiesOnly=yes -o IdentityFile=/dev/null -o PubkeyAuthentication=noを使用する場合、インタラクティブに認証できます。

たとえば、sshfsを使用してホームをマウントし、ホストキーチェックなしでパスワードを使用して認証するには、実行します

sshfs user@server: ~/ -o nonempty -F /dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -o IdentityFile=/dev/null -o PubkeyAuthentication=no
1
Ishan Arora