Git-ftp で SFTP を有効にするため打ったコマンドの記録

Git-ftp で SFTP を有効にするため打ったコマンドの記録

前回に引き続き、超ニッチな不具合やトラブルを解消した記録です。
今年(2024年)の春に仕事で使っているMacBookを買い替えました。制作環境を整備するにあたって、各種ライブラリをインストールしたりパスを通したり・・・などの作業は数年に1回しかやらないので毎回ググっています。毎回ズバリの情報がヒットせず苦労する、という作業って意外とあるので、今回こそはブログ記事にしておきます。

Git-ftp をMacにそのままインストールするだけだとSFTPが使えない

私、もう数年来Git-ftpというツールを愛用しています。最近はアップデートされていない枯れたツールではあるのですが、権限の少ない共用レンタルサーバーを利用するスモールビジネスのサイト制作が大部分を占める私にとっては、いまのところ代替のツールがあまりなく大切な相棒になっています。

Git-ftp by git-ftp

git-ftp.github.io

Git-ftpのインストールは、Macの場合だとHomebrewからできます。

brew install git-ftp

これだけでいけました。

一般的なレンタルサーバーだとプロトコルがFTP, FTP over SSL(FTPS) のいずれかになるので、ただインストールするだけで問題なく使えるはずです。しかし、クラウドサーバーなどでFTPは許可せず、SSHのみ接続可能にしている環境がいくつかあり、その際はプロトコルにSFTPを使うことになります。

ところが、Mac OSではそのままだとSFTPが使えません。SFTP接続でgit-ftpコマンドを打つと、以下のようなエラーメッセージが出ます。

fatal: Protocol 'sftp' not supported by curl, exiting...

これはMacに入っているcurlの仕様によるものだと、GitHubリポジトリのReadmeに記載があります。

The default version of curl coming with macOS does not support SFTP (Protocol sftp not supported or disabled in libcurl). So if you require SFTP support you can compile curl with SFTP support on your own. First download a curl source package from the website and unpack the archive.

引用元:git-ftp/INSTALL.md at master · git-ftp/git-ftp

対処法もReadmeを読めば書いてあるのですが、イマイチわかりにくい。しかも日本語の情報が欲しくてもヒットしないといういつものやつです。

SFTPを使えるようにした手順

まず、ターミナルで

which curl

を打ちます。すると、

/usr/bin/curl

と出てきました。これは、Mac初期のcurlを参照しているということです。
実はHomebrewにもcurlがあるので、そっちを使うようにすればよいみたいです。

そこで次に

brew info curl

と打ちます。すると、ずらずらっと何行もの情報が出てきますが、この中に

If you need to have curl first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc

という情報があったので、そのままコピペして

echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc

を実行。再度

which curl

を打つと、今度は

/opt/homebrew/opt/curl/bin/curl

と出てきました。これでHomebrewの方のcurlを使うようになり、SFTPでのgit-ftpも無事できるようになりました。

以上、次回Macを買い替えた際の数年後の自分に向けて書きました。
2024年の自分からは以上です。