Tera TermのSCPで「No such file or directory」が出るときは、送信か受信か、Windows側かリモート側か、ファイルか親フォルダーかを分けて確認します。まず「File → SSH SCP」のFromとToを見直し、両側で存在を確認したパスを入力してください。
最初に見るのはFrom・Toとエラー全文
| 操作 | From | To |
|---|---|---|
| 送信:Windows → リモート | Windows上の送信するファイル。例 C:\Work\sample.txt | リモート上の保存先。例 /home/alice/uploads/sample.txt |
| 受信:リモート → Windows | リモート上の受信するファイル。例 /home/alice/report.txt | Windows上の保存先。例 C:\Work\report.txt |
これらは説明用の例です。実際のユーザー名・ファイル名・存在する保存先へ置き換えます。Linux側の入力欄へWindowsのC:\…を指定したり、Windows側へLinuxの/home/…を指定したりしないでください。
公式SSH SCPダイアログの説明では、送信のToが空欄ならリモートのホームディレクトリを使います。受信のToが空欄ならファイル転送設定を使います。保存場所をはっきりさせたいときは、存在と権限を確認した保存先を明示します。
1. SSH画面のcdと、SCPのパスを区別する
Tera TermでSSH接続後にcdしても、その対話シェルの現在位置がSCPの転送先になるとは限りません。
Tera Term公式FAQは、端末エミュレーターはリモートの対話シェルの現在位置を把握していないと説明しています。SSH画面でcd /var/logを実行したあとにreport.txtだけを指定しても、その画面の/var/logを基準にSCPが探すとは判断できません。
Linuxの絶対パスは/から始まります。転送元または親ディレクトリをSSHで調べ、実際の絶対パスをSCP欄へ入力します。~はOSやシェルによって使えない場合があると公式ダイアログにも注意があるため、診断時は/home/alice/…等の確認済みパスを使うと条件を絞れます。
2. Windows側の存在を確認する
エクスプローラーで送信ファイルまたは受信先フォルダーを開きます。拡張子、スペース、大文字小文字の見た目、別フォルダーの同名ファイルを確認してください。PowerShellを使う場合は、次のように-LiteralPathでパスをそのまま指定できます。例のC:\Workが実際に存在するとは限りません。
Get-Item -LiteralPath 'C:\Work\sample.txt' |
Select-Object FullName,Length,Attributes
Get-Item -LiteralPath 'C:\Work' |
Select-Object FullName,Attributes
送信元ファイルが見つからないなら、リモートの権限変更をしても解決しません。受信ではWindows側の親フォルダーも必要です。保存先を指定すれば途中の全フォルダーが自動作成されると考えず、既存の書き込めるフォルダーを選んでください。
3. 同じSSHアカウントでリモート側を確認する
Linux等のGNU/Linux環境では、SCPに使うアカウントでSSH接続し、ユーザー・現在位置・対象パスを読み取ります。次の例は削除・権限変更を行いません。
id
pwd
ls -ld -- /home/alice /home/alice/uploads
ls -l -- /home/alice/report.txt
送信では親フォルダー、受信では元ファイルの存在を確認します。Report.txtとreport.txtのように、Linux側では通常大文字小文字も区別されます。シンボリックリンクなら、表示されたリンク先が失われていないかも確認してください。対話SSHで見えるパスと、制限された転送セッションのルートが異なる構成もあるため、管理者が決めた転送用パスも確認します。
| 結果 | 次に確認すること |
|---|---|
| 親フォルダーがNo such file or directory | 途中のパス、ユーザーのホーム、入力ミス、利用できるルート。 |
| ファイルだけが見つからない | ファイル名・拡張子・大文字小文字・リンク先。 |
| Permission denied | 同じアカウントの権限、親ディレクトリの検索権限、ACL等。 |
| SSHでは存在するが転送で失敗 | 相対パスの基準、別アカウント、転送制限、プロトコルとシェル解釈。 |
4. ファイル権限と親フォルダーの権限を分ける
GNUの権限説明では、ディレクトリのreadは一覧、writeはファイルの作成・削除、executeは中のファイルへのアクセスに関わります。受信元ファイルが読めても、途中の親フォルダーを通れなければアクセスできません。送信先ではファイルを作成・更新する権限も確認します。
「No such file」をすべて権限不足と同じ意味に扱わず、エラー全文と両側の実際のパスを調べます。chmod 777やchownの一括実行で解決を試さず、必要なら管理者に対象のパス・アカウント・操作を伝えて最小限の権限を確認します。通常のSCP入力だけでリモートsudoの権限が自動的に付くわけでもありません。
5. 空白・日本語・特殊文字を切り分ける
GUIのFrom/To、TTLマクロ、PowerShellやシェルのコマンドラインでは、引用符の意味と必要なエスケープが異なります。GUI欄へシェル用の引用符をそのまま追加すれば必ず直る、という共通手順にはしません。まず空白や特殊文字のない、利用可能な短い保存先へ、機密性のない小さいテストファイルを転送して、パス解釈の影響を分けます。
旧SCPはリモートシェルによる解釈が関わります。OpenSSHのマニュアルも特殊文字の引用に注意が必要と説明しています。問題が特殊文字を含むパスだけに限られる場合は、Tera Term/TTSSHの版、実際の入力文字と転送先シェルを記録して調べます。
SCPと「Send File」のBinaryを混同しない
ドラッグ&ドロップの公式説明では、SCP、Send File(内容を端末へペースト)、Paste Filenameは別の処理です。BinaryはSend Fileの内容変換に関わる項目です。SCPの「No such file」を直すためにASCII/Binaryを切り替える手順にはなりません。
ファイルをドロップしたとき、選ばれている処理を確認します。内容を端末へペーストしたことと、SSH SCPでリモートファイルを作ったことを区別してください。SCP選択はSSH2接続でファイルをドロップした場合の機能です。
TTLマクロで送受信する場合
scpsendの引数はローカルファイル、リモート転送先の順です。scprecvはリモートファイル、ローカル保存先の順です。以下はSSH認証済みの接続で使う説明例です。既存ファイルの上書きが起こり得るので保存先を確認します。
; 送信:ローカル → リモート
scpsend 'C:\Work\sample.txt' '/home/alice/uploads/sample.txt'
; 受信:リモート → ローカル
scprecv '/home/alice/report.txt' 'C:\Work\report.txt'
scpsendで転送先を省略するとリモートのホームへ、scprecvでローカル保存先を省略するとローカルのカレントディレクトリへコピーされるとマクロ資料は説明しています。GUI受信欄の省略時設定と混同しません。また、両マクロは転送完了を待たずに次へ進めるため、命令の次の行が実行されたことだけで転送成功とは判定できません。
別のscpコマンドでは成功する場合
OpenSSH 9.0以降のscpコマンドは、既定でSFTPを使います。Tera TermのSSH SCPと同じプロトコルで試したとは限りません。SFTPが許可されても旧SCP用のコマンド実行が制限されているサーバーでは、結果が異なり得ます。-Oは旧SCPを選ぶOpenSSHのオプションで、万能のパス修正設定ではありません。
別クライアントで比較する場合も、ホスト・ユーザー・パス・プロトコルをそろえます。WinSCPの公式説明では、SCPに必要なコマンドをリモートシェルが見つけられないと、127等の別のエラーになる場合を案内しています。scp: command not foundと転送対象が見つからないエラーを分け、管理者へコマンドの存在・非対話セッションのPATH・転送許可を確認します。
ネットワーク問題とパスの問題を分ける
接続拒否・タイムアウト・認証失敗なら、ホスト・SSHポート・到達性・資格情報を調べます。リモートから「No such file or directory」が返っている状態で、最初からファイアウォールを停止したり暗号方式を弱めたりする操作へ進みません。まずエラーが指している側のパスを調べてください。
管理者へ伝える情報
- 送信または受信、Tera Term/TTSSHのバージョン。
- エラー全文と発生時刻、個人情報を伏せたFrom/To。
- 同じSSHユーザーでのid・pwd・対象/親フォルダーの確認結果。
- GUIまたはTTL、空白/特殊文字の有無、別クライアントのプロトコル。
FromとToを両側の確認済みパスへ直し、同じアカウントの権限と実際のプロトコルを確認すると、「ファイルがない」のか「別の場所を探している」のかを具体的に切り分けられます。

コメント