インストールと接続
インストールと更新
必要なもの
- macOS 13以降を搭載したApple SiliconまたはIntel Mac。
- 使用中のmacOSに対応したXcode 15以降。
- リモート間コピーを使う場合は、MacのOpenSSH 9以降(
ssh -Vで確認)。 - SSHの公開鍵認証で接続できるSFTPサーバーと、その接続情報。
make はアプリを作成する前にテストを実行します。XCTestを利用するため、Xcode本体をインストールしておいてください。Command Line Toolsだけの環境では、テストをビルドできない場合があります。
SFTPでの接続・転送にはmacOS標準のSSHとSFTPを使います。Finderとのフォルダ転送でrsyncを選ぶ場合は、Macと接続先の両方でrsyncを利用でき、接続先でSSH経由のコマンド実行が許可されている必要があります。SFTP専用の接続先では、SFTPの転送方法を選んでください。
アプリを作成する
- Xcodeをインストールし、一度起動してライセンスへの同意や追加コンポーネントのインストールを済ませます。
- ターミナルで次の3行をまとめてコピーして実行します。ソースコードの取得、取得したディレクトリへの移動、アプリの作成とインストールまでを続けて行います。
git clone https://github.com/sekika/opensftp.git
cd opensftp
make
テストに成功すると、アプリのビルドとインストールが続けて実行されます。完了すると、次の場所にアプリが作成されます。
~/Applications/OpenSFTP.app
~ は自分のホームフォルダです。保存先は Applications(複数形)で、フォルダがなければ自動で作成します。管理者用の /Applications ではなく、自分のホームフォルダ内にインストールします。
Finderから OpenSFTP.app を開くか、次のコマンドで起動します。
open "$HOME/Applications/OpenSFTP.app"
ビルドでエラーが出た場合は、困ったときはを確認してください。テストが失敗した場合は、その時点で make が停止し、アプリの作成・更新は行いません。
アプリ作成後、ソースコードが不要であれば、取得したリポジトリのフォルダを削除してもかまいません。インストール済みのアプリは引き続き使用できます。更新する際は、ソースコードを再度取得してください。
更新する
OpenSFTP にバージョン番号はありません。GitHub の最新のソースコードが常に最新版です。
GitHubのリポジトリ全体の履歴には、ドキュメントの修正も含まれます。プログラムの更新を確認する際は、Sourcesディレクトリの変更履歴を確認してください。
Git で取得したソースからビルドした場合は、「OpenSFTP → OpenSFTP について」でコミット ID と日時を確認できます。ビルド元に Git の履歴がない場合は、「コミット情報はありません」と表示されます。
アプリを終了し、ソースコードを更新してから、同じディレクトリで再度 make を実行します。既存の ~/Applications/OpenSFTP.app が更新されます。保存した表示設定や接続先の入力値は引き継がれます。
通常は使用中のMac向けのアプリを作成します。Apple SiliconとIntelの両方に対応するアプリを作りたい場合は、次を実行します。
UNIVERSAL=1 make
接続の準備
SSHの接続設定を用意する
接続先のサーバー名、ユーザー名、ポート番号、利用する鍵などを確認し、~/.ssh/config に設定します。公開鍵をサーバーへ登録する必要がある場合は、接続先の管理者の案内に従ってください。
設定例です。各値は実際の接続先に置き換えます。
Host example
HostName sftp.example.com
User yourname
IdentityFile ~/.ssh/id_ed25519
# 標準以外のポートを使う場合
# Port 2222
# 踏み台サーバーを使う場合
# ProxyJump bastion
この例の example が、アプリで選択・入力する接続先の名前です。接続先の設定や鍵がすでに用意されている場合は、それをそのまま使えます。
ターミナルで接続を確認する
アプリを使う前に、同じMacのターミナルから接続してください。
sftp example
初回にホスト鍵の確認が出たら、接続先の鍵が正しいことを確認して登録します。接続できたら bye で終了します。
鍵にパスフレーズがある場合は、ssh-agentやmacOSのKeychain連携で、アプリからも利用できる状態にしておきます。既存の鍵をssh-agentへ追加する例は次のとおりです。
ssh-add ~/.ssh/id_ed25519
続いて、対話入力なしで接続できることを確認します。
sftp -oBatchMode=yes -oStrictHostKeyChecking=yes example
OpenSFTPには、パスワード・鍵のパスフレーズ・確認コードを入力する画面がありません。接続のたびにこれらの入力が必要な認証方法は利用できません。初回のホスト鍵確認もアプリでは行わず、未登録の鍵や一致しない鍵では接続を中止します。
認証には既存のOpenSSH設定、ssh-agent、Keychain連携を使います。OpenSFTPがパスワード・秘密鍵本文・パスフレーズを保存することはありません。
接続先の候補について
アプリの接続先候補には、~/.ssh/config に直接書かれた具体的な Host 名が表示されます。設定を変更したら、接続先欄の候補メニュー、または「接続 → 接続先候補を更新」で読み直します。
ワイルドカードを含む Host、否定パターン、Match 条件からは候補を作りません。Include 先のファイルに書かれた名前も、候補一覧には出ません。その場合は名前を直接入力してください。Include、ProxyJump、ポート、鍵などの接続設定自体は、OpenSSHの設定に従います。
接続する
- アプリを起動します。
- 最上部の接続先欄で候補を選ぶか、接続先の名前を入力します。
- 「接続する」を押すか、接続先欄でReturnを押します。
- 接続できると、サーバー側のホームフォルダが表示されます。
接続先には、SSH設定の名前、ホスト名、user@host、user@[IPv6] を入力できます。URL、host:path、ポート番号付きの文字列、オプション、空白を含む値は入力できません。ポート番号などは ~/.ssh/config に指定してください。
接続先欄の入力値は保存されます。次回起動時は名前だけが復元され、接続はしません。「接続する」またはReturnで接続を開始してください。
接続先を切り替えるときも、欄の値を変更して「接続する」を押します。実行中の処理がある間は、接続先を変更できません。
アンインストールと設定の初期化
アプリを終了し、Finderで ~/Applications/OpenSFTP.app をごみ箱へ移動すると、アプリを削除できます。ソースコードが不要であれば、取得したリポジトリのフォルダも別途削除できます。
表示設定や保存した接続先なども初期化したい場合は、アプリを終了してから、ターミナルで次を実行します。
defaults delete local.opensftp.desktop
この操作はOpenSFTPの保存設定を削除します。~/.ssh/config、SSHの鍵、known_hosts、転送したファイルは削除しません。