web-dev-qa-db-ja.com

中間マシンを介してリモートSSHFSをマウントする方法は?トンネリング?

SSHFSを使用してリモートファイルシステム(A)をマウントしたいのですが、アクセスが許可されていないIPアドレスを持っていることがあります。したがって、私の計画は、そのネットワーク内の別のマシン(B)を介してアクセスすることです。 AをBにマウントしてから、B(およびA)をローカルコンピューターにマウントする必要がありますか?それを行うより良い方法はありますか?

更新

手順を明確にするために:

まず、トンネルを作ります

ssh -f user@machineB -L MYPORT:machineA:22 -N

次に、リモートファイルシステムをマウントします。

sshfs -p MYPORT [email protected]:/myremotepath /mylocalpath

それが正しいか?

完了したら、どうやってトンネルを破壊しますか?

28
Andrei

うんトンネル。マシンBを接続し、マシンAのSSHdポートにローカルトンネル(-L)を作成してから、新しく作成したトンネルのポートにsshfslocalhostに設定します。

9
edk

sshfsのオプションssh_commandを使用して、トリックを実行できます。

sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'

通常でアンマウント

fusermount -u /mnt

申し訳ありませんが、これは7年遅れです...

18
Rodrigo Farias

これは、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'
1
dcneuro

接続スキーム:Your machine --> Host B --> Host A

私たちのソリューションは OpenSSH 7. で導入されたプロキシジャンプを使用するため、次のコマンドでバージョンが新しいことを確認する必要があります。

ssh -V

次に 適切に設定 する必要があります〜/ .ssh/config。たとえば、machineBmachineAからのパスワードログインで利用できる場合:

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
0
lucidyan