SSHサーバをMacにマウントする
SSHサーバをMacにマウントする流れ
こんにちは、あず(@as_pml)です。今回はSSHサーバをMacのファイルシステム(Finder)にマウントする流れを備忘録的に残して行こうと思います。スペックは以下の通りです。
MacBook Air(M1, 2020)
macOS Monterey 12.4
Homebrew 3.5.8
なぜこの構成にしようと思ったか?
現在サーバを2台持っており、それぞれsshで接続できるようにしています。
またポータブルなものとしてMacBookを利用しています。いちいちsshしてサーバの中のファイルを覗いたり、またVSCodeのRemote Explorerから環境を開くのが面倒!!(履歴に出てきてくれない)と思ってしまったりし、じゃあいっそFinderから確認できるようにしてしまえ(=localにマウントしてみよう!)となった次第です。
0.要約
忙しい方向けの要約です。私の備忘録も兼ねます。
- サポートツールを入れる(macFUSE,sshfsが入っている人は飛ばしてください)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install macfuse
brew install gromgit/fuse/sshfs-mac
- 接続する
sshfs [user]@[host]:[dir] ~[local path] -o IdentityFile=~/.ssh/[id_ras name] -p [port number]
例: sshfs as_pml@hogehoge.com:/home/as/work/ ~/work/suns/ -o IdentityFile=~/.ssh/id_ras -p 21
- aliasを作る
alias sshfs2="umount -f ~[local path];[user]@[host]:[dir] ~[local path] -o IdentityFile=~/.ssh/[id_ras name] -p [port number]"
例:alias sshfs2="umount -f ~/work/suns/;as_pml@hogehoge.com:/home/as/work/ ~/work/suns/ -o IdentityFile=~/.ssh/id_ras -p 21"
- (unmountしたい時用)
sudo umount ~/work/suns
1.macFUSE,sshfsを導入する
ここではbrewを利用したmacFUSEを導入する方法を紹介します。
- brew update
まずHomebrewのUpdateを実行してください(brew update
)
ここでよくわからないエラーを吐きまくる(私は長らくDockerと戯れており、brewを放置しまくっていたせいでダメだと判断しました)時は再インストールも押します。
コマンドは以下になります。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
- macfuseの導入
続いてmacFUSEを導入します。これは以下のコマンドでいけます。
brew install macfuse
- sshfs-macの導入
最後にsshfsを導入します。
brew install gromgit/fuse/sshfs-mac
2. 接続する
先ほど導入したsshfsを利用してsshプロトコルで接続し、特定のディレクトリへのマウントを行います。
概要は以下の通りですが、以下詳細をみていきます。
sshfs [user]@[host]:[dir] ~[local path] -o IdentityFile=~/.ssh/[id_ras name] -p [port number]
まず~[local path]
にあたるディレクトリを生成する必要があります。ここがマウントポイントになります。
今回は仮に~/work/suns
というディレクトリであるとします。
mkdir ~/work/suns
次にssh接続する際のssh keyがもしない場合にはkey generateします。私の場合には自鯖なので自分で生成してpublic keyをサーバ側に配置し、~/.ssh/以下に private keyを配置しました。keyの名前は自分で変えていますがここでは最も一般的なid_ras
としたとします。
ここで、 as_pmlというUser名でhogehoge.comという名前のサーバにssh接続しに行くことを想定します。
~/work/suns
にはこのサーバの中の/home/as/work/
ディレクトリをマウントしたいです。
するとコマンドは以下のようになります。 -pオプションはポート番号を指定でき、21番ポート以外で待機している時に有効です。
sshfs as_pml@hogehoge.com:/home/as/work/ ~/work/suns/ -o IdentityFile=~/.ssh/id_ras -p 21
セキュリティエラーが出た!!
sshfsの実行時にセキュリティエラーとともにシステム設定に誘導されることがあるかもしれません。そんな時には以下の手順で解消します。
- シャットダウンする
- その後電源ボタンを長押しし、
Loading startup options(起動オプションを読み込み中)
と表示されるのを待つ - オプション(歯車マークの方)を押して「続行」します
- 上のツールバーにある
Startup Security Utility(起動セキュリティユーティリティ)
を探して選びます。 -
Security Policy(セキュリティポリシー)
からAllow user management of kernel extensions from identified developers(特定された開発者のカーネル拡張の管理をユーザーに許可する)
というチェックボックスにチェックを入れます - 後はOKボタンを連打して、再度システムを再起動
で基本はいけました。
ここまでで一通りマウントは完了です。お疲れ様でした!!
3. おまけ(unmountしたい時用)
sudo umount ~/work/suns
これでunmountできます。
Discussion