SFTP のアクセス情報が届きました。取引先が自社サーバーにファイルを置いてほしいと言ってきた、銀行が毎日のアップロードを求めている、あるいはホスティング会社がサイトへのアクセスを用意してくれた、といった場面です。メッセージにはホスト名、ユーザー名、そしてパスワードか添付の鍵ファイルが書かれていますが、Windows でそれをどう使うかはどこにも書かれていません。
このガイドでは、それぞれの情報の意味、接続する 2 つの方法(アプリ、または Windows に最初から入っている sftp コマンド)、そしてよくあるエラーメッセージが何を伝えているかを説明します。
受け取った情報の意味
| 受け取った情報 | その意味 |
|---|---|
ホスト(例:sftp.example.com) | サーバーのアドレスです。名前ではなく IP アドレスの場合もあります。 |
| ポート | 特に指定がなければ 22 です。2222 など別のポートを使うホストもあるので、送られてきた番号をそのまま使ってください。 |
| ユーザー名 | そのサーバーでのあなたのアカウントです。特に指示がない限り、メールアドレスではありません。 |
| パスワード | パスワードでログインするためのものです。代わりに鍵を求めるサーバーや、鍵とパスワードの両方を求めるサーバーもあります。 |
鍵ファイル:.ppk、.pem、id_rsa、id_ed25519 | 鍵認証で使う、あなたの秘密鍵です。鍵自体にパスフレーズが付いていることもあります。 |
SHA256:... のようなフィンガープリント | サーバーのホスト鍵フィンガープリントです。初回接続時に、正しいサーバーにつながったかを確認するために使います。 |
/incoming のようなフォルダー | アップロードしてよい場所です。取引先のサーバーでは、ここが唯一書き込める場所であることがよくあります。 |
sftp://user@host:2222/incoming のようなリンク | 上の情報のほとんどを 1 行にまとめたものです。多くのアプリはそのまま受け付けます。 |
メールに書かれていないことが多い点が 1 つあります。多くの取引先は、登録済みのアドレスからの接続しか受け付けません。IP アドレスを聞かれていたら、試す前にオフィスのグローバル IP を伝えておきましょう。
アプリで接続する
グラフィカルなクライアントなら、サーバーの中身をすぐに見られて、ドラッグでファイルを出し入れできます。FTPie の場合:
- ストレージを追加を選び、SFTP を選びます。
- ホスト、ポート、ユーザー名を入力します。
sftp://のリンクを受け取っている場合は、リンク全体をホスト欄に貼り付けると、ポート、ユーザー名、パスワード、フォルダーが自動で入力されます。設定 > Windows との統合 > ftp:// と sftp:// のリンクを FTPie で開くをオンにしておけば、リンクをクリックするだけで、入力済みかつ接続テスト済みの状態でこのフォームが開きます。 - 認証方法でパスワード認証か鍵認証を選びます。サーバーが鍵とパスワードの両方を求める場合は二要素認証を選びます。
- 鍵を使う場合は、秘密鍵の横のファイルを選択をクリックして鍵ファイルを選びます。パスフレーズがあれば入力します。
- 必要に応じて
/incomingなどの初期ディレクトリを指定し、接続テストをクリックします。 - 初回接続時、FTPie はサーバーのホストキー情報を表示します。送られてきたフィンガープリントと比べてから、承諾をクリックします。
SFTP は、個人利用なら FTPie の無料プランで使えます(FTP、FTPS、SFTP サーバー合わせて 3 つまで)。仕事で使う場合は、FTPie Pro を無料で試せます。
鍵ファイル:.ppk、.pem、OpenSSH のどれ?
.ppkは PuTTY の形式で、PuTTYgen で作られます。バージョン 2 と 3 の 2 種類があります。.pemは PEM 形式の鍵です。たとえば AWS が EC2 サーバー用に発行する鍵がこれです。- 拡張子のない
id_rsaやid_ed25519は、ssh-keygenで作られた OpenSSH の鍵です。 - 末尾が
.pubのファイルは公開鍵のほうです。サーバーに置くもので、クライアントに読み込むことはありません。
多くの解説は、PuTTYgen で形式を変換するところから始まります。FTPie は 3 つの形式すべてを、パスフレーズの有無にかかわらずそのまま読み込めるので、この手順は不要です。読み込めないファイルがあれば、パスフレーズがない(または間違っている)、秘密鍵ではない、.pub ファイルを選んだ、といった理由を表示します。
ただし、変換が必要なケースが 1 つだけあります。Windows 標準の sftp コマンドは .ppk ファイルを読めません。PuTTYgen で鍵を開き、Conversions > Export OpenSSH key を使ってください。逆方向は、PuTTYgen の Load のあと Save private key で、.pem を .ppk に変換できます。
Windows 標準の sftp コマンドで接続する
Windows 10 と 11 には OpenSSH クライアントが入っています。PowerShell またはコマンド プロンプトで次のように実行します。
sftp -P 22 exports@sftp.example.com
ポートは大文字の -P で指定します。小文字の -p は sftp では別の意味です。初回は、sftp がサーバーのフィンガープリントを表示して Are you sure you want to continue connecting (yes/no/[fingerprint])? と尋ねます。送られてきたものと比べてから yes と入力し、続けてパスワードを入力します。鍵ファイルを使う場合は次のとおりです。
sftp -i C:\Users\you\.ssh\id_ed25519 exports@sftp.example.com
接続後は、ls でファイル一覧、cd でフォルダー移動、put でアップロード、get でダウンロード、bye で終了です。そのほかのコマンドは SFTP コマンドリファレンスに、毎日のアップロードを定期実行のジョブにする方法は FTP/SFTP 転送の自動化にまとめています。
接続できないとき
- "Permission denied (publickey)":サーバーは鍵認証しか受け付けておらず、提示した鍵が登録されていません。
.pubではなく秘密鍵を読み込んだか、サーバーの管理者があなたの公開鍵を登録したかを確認してください。 - "Permission denied (password)"、またはアプリでの認証エラー:ユーザー名かパスワードが間違っています。ほとんどのサーバーでは、ユーザー名の大文字と小文字が区別されます。
- "Connection timed out":何も応答がありません。原因はたいてい、ファイアウォール、ポートの間違い、または許可した IP アドレスしか受け付けないサーバーです。
- "Connection refused":マシンは応答しましたが、そのポートで待ち受けているものがありません。ポート番号を確認してください。
- "Host key verification failed"、またはホスト鍵が変わったという警告:サーバーの鍵が、PC に保存されている鍵と一致しなくなっています。サーバーを再構築しただけの場合もあれば、もっと悪いことが起きている場合もあるので、新しい鍵を承諾する前にサーバーの管理者に確認してください。Windows の
sftpなら、ssh-keygen -R sftp.example.comで古いエントリーを削除できます。 - アップロード時の "Permission denied":接続はできていますが、その場所には書き込めません。取引先のサーバーでは、
/incomingのような 1 つのフォルダーにしかアップロードできないことがよくあります。 - FileZilla の "Could not connect to server" は上のほとんどを含みます。どれに当たるかはメッセージログで分かります。
取引先に連絡する前に、3 つの無料チェックで原因を絞り込めます。SFTP 接続テスター(そもそもインターネットからサーバーが応答するか)、SFTP 認証方式チェッカー(パスワード、鍵、その両方のどれを求めているか)、SFTP ホスト鍵フィンガープリント(どの鍵を提示しているか)です。許可したアドレスしか受け付けないサーバーは、これらのチェックも拒否します。
さあ、はじめましょう 30日間の無料トライアル
FTPie をダウンロードして、30日間の無料トライアルを始めましょう。FTP とクラウドをひとつにまとめた操作性を試し、期間終了後も無料版をそのままお使いいただけます。
無料トライアルをダウンロード