SSHFSを使用してリモートファイルシステム(A)をマウントしたいのですが、アクセスが許可されていないIPアドレスを持っていることがあります。したがって、私の計画は、そのネットワーク内の別のマシン(B)を介してアクセスすることです。 AをBにマウントしてから、B(およびA)をローカルコンピューターにマウントする必要がありますか?それを行うより良い方法はありますか?
更新
手順を明確にするために:
まず、トンネルを作ります
ssh -f user@machineB -L MYPORT:machineA:22 -N
次に、リモートファイルシステムをマウントします。
sshfs -p MYPORT [email protected]:/myremotepath /mylocalpath
それが正しいか?
完了したら、どうやってトンネルを破壊しますか?
うんトンネル。マシンBを接続し、マシンAのSSHdポートにローカルトンネル(-L)を作成してから、新しく作成したトンネルのポートにsshfsをlocalhostに設定します。
sshfs
のオプションssh_command
を使用して、トリックを実行できます。
sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'
通常でアンマウント
fusermount -u /mnt
申し訳ありませんが、これは7年遅れです...
これは、HighSierra 10.13.6、SHFSバージョン2.5(OSXFUSE SSHFS 2.5.0)OSXFUSE 3.10.4で私にとって機能するものです。ヒューズライブラリバージョン:2.9.7
上記のロドリゴファリアスの回答と、-Jオプションに注目したクレミッシュとオハドルービンのコメントに基づく:
sshfs finalserver_username@finalserver:/path/to/folder/on/finalserver/ /local/mount/point -o ssh_command='ssh -J intermediate_server_username@intermediate_server'
接続スキーム:Your machine --> Host B --> Host A
私たちのソリューションは OpenSSH 7. で導入されたプロキシジャンプを使用するため、次のコマンドでバージョンが新しいことを確認する必要があります。
ssh -V
次に 適切に設定 する必要があります〜/ .ssh/config。たとえば、machineBがmachineAからのパスワードログインで利用できる場合:
machineB
HostName {machineB ip address}
User {machineB username}
Port {machineB port-number}
IdentityFile ~/.ssh/{machineB private ssh key}
machineA
ProxyJump machineB
Hostname {machineA ip address, maybe in local network}
User {machineA username}
Port {machineA port-number}
最後に、マウントポイントを作成し、 add 行を/ etc/fstabに作成します
machineB:{machineB mount path} {your local mountpoint} Fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0