Copy a Folder
Overview
“Copy a Folder” focuses on moving files with PSCP/PSFTP using the same trust model as interactive PuTTY SSH sessions.
Independent resource: Putty.info does not host file-transfer binaries. Use PSCP/PSFTP from an official PuTTY install linked via our download guide or the official latest page.
PSCP, PSFTP, and authentication
Authenticate with saved sessions, explicit user@host, or Pageant-held keys. Quote paths containing spaces, set non-default ports deliberately, and remember that SFTP subsystem availability is a server setting.
PSCP is optimized for scripted copy operations; PSFTP opens an interactive SFTP command shell similar in spirit to FTP clients but secured by SSH. Both honor saved PuTTY sessions and can use Pageant-held keys. Quoting paths with spaces, selecting the non-default SSH port, and verifying destination permissions are the usual friction points.
Step-by-step
Practical procedure:
- Prove interactive SSH login works with the same account and key before debugging transfers.
- Locate official pscp.exe/psftp.exe from your PuTTY install—avoid random downloads named similarly.
- Start with a small test file to a directory you can write.
- Use correct quoting for spaces; prefer forward-slash remote paths as documented in examples.
- For automation, capture exit codes and avoid embedding passphrases in scripts—use Pageant or controlled key agents per policy.
- Verify size/hash for critical artifacts after transfer.
Permissions, paths, and ports
Watch for these pitfalls:
- Permission denied on put/get despite successful SSH shell—directory ownership/modes differ.
- Wrong port when sshd listens on a non-22 port.
- Using SCP assumptions against an SFTP-only locked-down account.
- Transferring private keys themselves without encryption-at-rest controls.
- Trusting incomplete downloads without verification.
A successful SSH interactive login does not guarantee write permission to the destination directory. “Permission denied” during transfer is often a Unix permissions or SELinux/AppArmor issue on the server.
Verification and resume notes
After transfer, verify size and, for critical artifacts, a hash computed independently on both sides. Resume behaviour differs between tools and server subsystems—test before relying on resume during maintenance windows. See verify a transfer and resume transfers.
Primary references: official latest download page, official PuTTY documentation, and this site's official-download redirect plus safe download guide and latest version notes.
Field notes and runbook extras
Additional operational depth for Copy a Folder (path /file-transfer/copy-folder/): treat every change to authentication, forwarding, or host-key storage as a reversible change under change control. Record the PuTTY version string from Help → About, the Windows build, and whether Pageant was running. Those three facts explain a surprising fraction of “it works on my laptop” discrepancies.
When documenting the procedure for teammates, include: the saved session name, Host Name and Port from the Session panel, whether Connection type is SSH, the username, whether a PPK path is set under Connection → SSH → Auth, and whether agent forwarding is enabled. Explicitly state that Putty.info is an independent educational site and that binaries must be obtained from the official project download page. Link readers to safe download guidance, host key verification, and the official manual so they can cross-check labels that differ slightly across releases.
If you still need more diagnostics after following the sections above, reproduce the issue with logging enabled under Session → Logging to a local file you control, scrub secrets from the transcript, and compare against server auth logs for the same UTC timestamp. Avoid third-party “PuTTY fix” utilities. Prefer updating to the current stable release from official hosts, re-importing a known-good saved session, and testing from a second network path before declaring the workstation broken.
- Keep private keys passphrase-protected and backed up offline according to your organization's secret-handling policy.
- Prefer named saved sessions over ad-hoc connections for anything beyond a one-off debug.
- Disable unused tunnels and agent forwarding by default; enable them per session only when required.
- Schedule periodic key rotation and remove stale authorized_keys entries during access reviews.
- Teach new operators the difference between connection errors and authentication errors before giving them production bastion access.