SFTP(1) General Commands Manual SFTP(1)

sftp — برنامه امن انتقال پرونده

sftp [-46AaCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_command] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-R num_requests] [-S program] [-s subsystem | sftp_server] [-X sftp_option] destination

sftp یک برنامه انتقال پرونده شبیه به ftp(1) است که تمام عملیات‌ها را روی یک بستر انتقال رمزگذاری‌شدهٔ ssh(1) انجام می‌دهد. این برنامه همچنین می‌تواند از بسیاری از ویژگی‌های ssh مانند احراز هویت با کلید عمومی و فشرده‌سازی استفاده کند.

مقصد یا destination می‌تواند به صورت [user@]host[:path] یا به صورت یک نشانی وب (URI) به شکل sftp://[user@]host[:port][/path] مشخص شود.

اگر destination شامل یک path (مسیر) باشد و آن مسیر یک دایرکتوری نباشد، sftp در صورت استفاده از یک روش احراز هویت غیرتعاملی، پرونده‌ها را به صورت خودکار دریافت خواهد کرد؛ در غیر این صورت، این کار را پس از احراز هویت تعاملی موفقیت‌آمیز انجام خواهد داد.

اگر هیچ path مشخص نشده باشد، یا اگر مسیر تعیین‌شده یک دایرکتوری باشد، sftp به میزبان (host) مشخص‌شده وارد می‌شود و به حالت دستورات تعاملی می‌رود و در صورتی که دایرکتوری راه دوری مشخص شده باشد، به آن تغییر مسیر می‌دهد. می‌توان از یک اسلش اختیاری در انتهای مسیر برای اجبار به تفسیر path به‌عنوان دایرکتوری استفاده کرد.

از آنجا که در قالب‌های مقصد از نویسهٔ دو نقطه (:) برای جداسازی نام میزبان از نام مسیر یا شماره درگاه استفاده می‌شود، نشانی‌های IPv6 باید در براکت‌های مربع [ ] قرار گیرند تا از بروز ابهام جلوگیری شود.

گزینه‌ها به شرح زیر هستند:

اجبار sftp به استفاده انحصاری از نشانی‌های IPv4.
اجبار sftp به استفاده انحصاری از نشانی‌های IPv6.
اجازه به بازفرستادن (forwarding) ssh-agent(1) به سیستم راه دور. حالت پیش‌فرض عدم بازفرستادن عامل احراز هویت است.
تلاش برای ادامه دادن انتقال‌های متوقف‌شده به‌جای رونویسی بر روی پرونده‌های ناقص یا کاملِ موجود. اگر محتوای ناقص با داده‌های در حال انتقال تفاوت داشته باشد، پرونده حاصل احتمالاً خراب خواهد شد.
buffer_size
تعیین اندازه بافری که sftp هنگام انتقال پرونده‌ها استفاده می‌کند. بافرهای بزرگ‌تر به تعداد تبادلات رفت‌وبرگشتی (round trips) کمتری نیاز دارند اما حافظه بیشتری مصرف می‌کنند. مقدار پیش‌فرض ۳۲۷۶۸ بایت است.
batchfile
حالت دسته‌ای (Batch mode) مجموعه‌ای از دستورات را به‌جای ورودی استاندارد () از یک پرونده ورودی batchfile می‌خواند. از آنجا که این حالت فاقد تعامل کاربر است، باید به همراه احراز هویت غیرتعاملی استفاده شود تا نیاز به وارد کردن گذرواژه در هنگام اتصال برطرف گردد (برای جزئیات به sshd(8) و ssh-keygen(1) مراجعه کنید).

مقدار ‘-’ برای batchfile می‌تواند برای نشان دادن ورودی استاندارد استفاده شود. اگر هر یک از دستورات زیر ناموفق باشد، sftp متوقف خواهد شد: get, put, reget, reput, rename, ln, rm, mkdir, chdir, ls, lchdir, copy, cp, chmod, chown, chgrp, lpwd, df, symlink, و lmkdir.

توقف در اثر بروز خطا را می‌توان برای هر دستور به صورت جداگانه با افزودن پیشوند ‘-’ به ابتدای دستور غیرفعال کرد (برای مثال، -rm /tmp/blah*). نمایش بازگشتی (Echo) دستور را نیز می‌توان با افزودن پیشوند ‘@’ به ابتدای دستور غیرفعال کرد. این دو پیشوند را می‌توان به هر ترتیبی با یکدیگر ترکیب کرد، برای مثال -@ls /bsd.

فعال‌سازی فشرده‌سازی (از طریق پرچم -C در ssh).
cipher
انتخاب الگوریتم رمزنگاری مورد استفاده برای رمزگذاری داده‌های در حال انتقال. این گزینه مستقیماً به ssh(1) پاس داده می‌شود.
sftp_server_command
اتصال مستقیم به یک سرور محلی sftp (به‌جای اتصال از طریق ssh(1)). می‌توان یک دستور و آرگومان‌های آن را مشخص کرد، برای مثال "/path/sftp-server -el debug3";. این گزینه می‌تواند در اشکال‌زدایی کلاینت و سرور مفید باشد.
ssh_config
تعیین یک پرونده پیکربندی سفارشی برای هر کاربر در ssh(1). این گزینه مستقیماً به ssh(1) پاس داده می‌شود.
درخواست تخلیه فوری پرونده‌ها بر روی دیسک (flush) بلافاصله پس از انتقال. هنگام بارگذاری پرونده‌ها، این ویژگی تنها در صورتی فعال است که سرور از افزونهٔ "fsync@openssh.com" پشتیبانی کند.
identity_file
انتخاب پرونده‌ای که شناسه (کلید خصوصی) برای احراز هویت با کلید عمومی از آن خوانده می‌شود. این گزینه مستقیماً به ssh(1) پاس داده می‌شود.
destination
اتصال به میزبان هدف از طریق برقراری اتصال اولیهٔ sftp به میزبان جهش (jump host) توصیف‌شده توسط destination و سپس ایجاد بازفرستادن TCP به مقصد نهایی از آنجا. می‌توان چند میزبان جهش را با نویسه ویرگول از هم جدا کرد. این گزینه یک میانبر برای تعیین دستورالعمل پیکربندی ProxyJump است. این گزینه مستقیماً به ssh(1) پاس داده می‌شود.
limit
محدود کردن پهنای باند مصرفی، بر حسب Kbit/s.
غیرفعال کردن حالت بی‌صدا، به عنوان مثال برای لغو حالت بی‌صدای ضمنی تنظیم‌شده با پرچم -b.
ssh_option
می‌تواند برای ارسال گزینه‌ها به ssh با قالبی که در ssh_config(5) استفاده می‌شود، به کار رود. این برای مشخص کردن گزینه‌هایی کاربرد دارد که برای آن‌ها پرچم جداگانه‌ای در خط فرمان sftp وجود ندارد. برای مثال، جهت تعیین یک درگاه جایگزین استفاده کنید از: sftp -oPort=24. برای جزئیات کامل گزینه‌های فهرست‌شده در زیر و مقادیر مجاز آن‌ها، به ssh_config(5) مراجعه فرمایید.
AddKeysToAgent
 
AddressFamily
 
BatchMode
 
BindAddress
 
BindInterface
 
CASignatureAlgorithms
 
CanonicalDomains
 
CanonicalizeFallbackLocal
 
CanonicalizeHostname
 
CanonicalizeMaxDots
 
CanonicalizePermittedCNAMEs
 
CertificateFile
 
ChannelTimeout
 
CheckHostIP
 
Ciphers
 
ClearAllForwardings
 
Compression
 
ConnectTimeout
 
ConnectionAttempts
 
ControlMaster
 
ControlPath
 
ControlPersist
 
DynamicForward
 
EnableEscapeCommandline
 
EnableSSHKeysign
 
EscapeChar
 
ExitOnForwardFailure
 
FingerprintHash
 
ForkAfterAuthentication
 
ForwardAgent
 
ForwardX11
 
ForwardX11Timeout
 
ForwardX11Trusted
 
GSSAPIAuthentication
 
GSSAPIDelegateCredentials
 
GatewayPorts
 
GlobalKnownHostsFile
 
HashKnownHosts
 
Host
 
HostKeyAlgorithms
 
HostKeyAlias
 
HostbasedAcceptedAlgorithms
 
HostbasedAuthentication
 
Hostname
 
IPQoS
 
IdentitiesOnly
 
IdentityAgent
 
IdentityFile
 
IgnoreUnknown
 
Include
 
KbdInteractiveAuthentication
 
KbdInteractiveDevices
 
KexAlgorithms
 
KnownHostsCommand
 
LocalCommand
 
LocalForward
 
LogLevel
 
LogVerbose
 
MACs
 
NoHostAuthenticationForLocalhost
 
NumberOfPasswordPrompts
 
ObscureKeystrokeTiming
 
PKCS11Provider
 
PasswordAuthentication
 
PermitLocalCommand
 
PermitRemoteOpen
 
Port
 
PreferredAuthentications
 
ProxyCommand
 
ProxyJump
 
ProxyUseFdpass
 
PubkeyAcceptedAlgorithms
 
PubkeyAuthentication
 
RekeyLimit
 
RemoteCommand
 
RemoteForward
 
RequestTTY
 
RequiredRSASize
 
RevokedHostKeys
 
SecurityKeyProvider
 
SendEnv
 
ServerAliveCountMax
 
ServerAliveInterval
 
SessionType
 
SetEnv
 
StdinNull
 
StreamLocalBindMask
 
StreamLocalBindUnlink
 
StrictHostKeyChecking
 
SyslogFacility
 
TCPKeepAlive
 
Tag
 
Tunnel
 
TunnelDevice
 
UpdateHostKeys
 
User
 
UserKnownHostsFile
 
VerifyHostKeyDNS
 
VisualHostKey
 
XAuthLocation
 
port
تعیین درگاه برای اتصال به میزبان راه دور.
حفظ زمان‌های اصلاح، زمان‌های دسترسی و مجوزهای پرونده‌های اصلی منتقل‌شده.
حالت بی‌صدا: نوار پیشرفت و همچنین پیام‌های هشدار و تشخیصی از سوی ssh(1) را غیرفعال می‌کند.
num_requests
تعیین تعداد درخواست‌هایی که می‌توانند در هر لحظه در انتظار پاسخ باشند. افزایش این مقدار ممکن است سرعت انتقال پرونده را اندکی بهبود بخشد اما مصرف حافظه را افزایش می‌دهد. مقدار پیش‌فرض ۶۴ درخواست در انتظار است.
رونوشت‌برداری بازگشتی (recursive) از تمام پوشه‌ها هنگام بارگذاری و بارگیری. توجه داشته باشید که sftp پیوندهای نمادین موجود در مسیر پیمایش درخت پوشه‌ها را دنبال نمی‌کند.
program
نام program مورد استفاده برای اتصال رمزگذاری‌شده. این برنامه باید گزینه‌های ssh(1) را بفهمد و پشتیبانی کند.
subsystem | sftp_server
تعیین زیرسیستم SSH2 یا مسیر مربوط به یک کارگزار sftp بر روی میزبان راه دور. تعیین مسیر زمانی مفید است که sshd(8) روی میزبان راه دور فاقد یک زیرسیستم sftp پیکربندی‌شده باشد.
افزایش سطح گزارش‌گیری (logging level). این گزینه به ssh نیز ارسال می‌شود.
sftp_option
تعیین گزینه‌ای که جنبه‌هایی از رفتار پروتکل SFTP را کنترل می‌کند. گزینه‌های معتبر عبارتند از:
=value
کنترل تعداد درخواست‌های هم‌زمان خواندن یا نوشتن SFTP که در هر لحظه از بارگیری یا بارگذاری می‌توانند در حال پردازش باشند. به‌طور پیش‌فرض ۶۴ درخواست می‌توانند به صورت هم‌زمان فعال باشند.
=value
کنترل حداکثر اندازه بافر برای یک عملیات منفرد خواندن/نوشتن SFTP که در حین بارگیری یا بارگذاری استفاده می‌شود. به‌طور پیش‌فرض از یک بافر ۳۲ کیلوبایتی استفاده می‌شود.

پس از ورود به حالت تعاملی، sftp مجموعه‌ای از دستورات را مشابه با ftp(1) پشتیبانی می‌کند. دستورات به بزرگی و کوچکی حروف حساس نیستند. نام مسیرهایی که شامل فاصله هستند باید در کوتیشن قرار گیرند. هرگونه نویسهٔ ویژه‌ای در نام مسیرها که توسط glob(3) شناخته می‌شود باید با استفاده از بک‌اسلش (‘\’) اسکیپ شود.

خروج از sftp.
[path]
تغییر دایرکتوری راه دور به path. اگر path مشخص نشده باشد، دایرکتوری به همان دایرکتوری که نشست در آن آغاز شده بود تغییر می‌یابد.
[-h] grp path
تغییر گروه پروندهٔ path به grp. مسیر path می‌تواند شامل نویسه‌های الگوی glob(7) باشد و ممکن است با چند پرونده مطابقت داشته باشد. شناسهٔ grp باید یک GID عددی باشد.

اگر پرچم -h مشخص شده باشد، پیوندهای نمادین دنبال نمی‌شوند. توجه داشته باشید که این ویژگی تنها توسط سرورهایی پشتیبانی می‌شود که افزونهٔ "lsetstat@openssh.com" را پیاده‌سازی کرده باشند.

[-h] mode path
تغییر مجوزهای پروندهٔ path به mode. مسیر path می‌تواند شامل نویسه‌های الگوی glob(7) باشد و ممکن است با چند پرونده مطابقت داشته باشد.

اگر پرچم -h مشخص شده باشد، پیوندهای نمادین دنبال نمی‌شوند. توجه داشته باشید که این ویژگی تنها توسط سرورهایی پشتیبانی می‌شود که افزونهٔ "lsetstat@openssh.com" را پیاده‌سازی کرده باشند.

[-h] own path
تغییر مالک پروندهٔ path به own. مسیر path می‌تواند شامل نویسه‌های الگوی glob(7) باشد و ممکن است با چند پرونده تطابق یابد. شناسهٔ own باید یک UID عددی باشد.

اگر پرچم -h مشخص شده باشد، پیوندهای نمادین دنبال نمی‌شوند. توجه داشته باشید که این ویژگی تنها توسط سرورهایی پشتیبانی می‌شود که افزونهٔ "lsetstat@openssh.com" را پیاده‌سازی کرده باشند.

oldpath newpath
رونوشت‌برداری از پرونده راه دور از oldpath به newpath.

توجه داشته باشید که این دستور تنها توسط سرورهایی پشتیبانی می‌شود که افزونهٔ "copy-data" را پیاده‌سازی کرده باشند.

oldpath newpath
نام مستعار برای دستور copy.
[-hi] [path]
نمایش اطلاعات استفاده برای سیستم پرونده‌ای که دایرکتوری کنونی (یا path در صورت مشخص شدن) در آن قرار دارد. اگر پرچم -h مشخص شده باشد، اطلاعات ظرفیت با استفاده از پسوندهای «خوانا برای انسان» نمایش داده می‌شود. پرچم -i علاوه بر اطلاعات ظرفیت، درخواست نمایش اطلاعات inode را نیز می‌دهد. این دستور تنها در سرورهایی پشتیبانی می‌شود که افزونهٔ “statvfs@openssh.com” را پیاده‌سازی کرده باشند.
خروج از sftp.
[-afpR] remote-path [local-path]
دریافت پروندهٔ remote-path و ذخیره آن روی رایانه محلی. اگر نام مسیر محلی مشخص نشده باشد، همان نامی را می‌گیرد که در رایانه راه دور دارد. مسیر remote-path می‌تواند شامل نویسه‌های glob(7) باشد و ممکن است با چند پرونده تطابق یابد. در این حالت اگر local-path مشخص شده باشد، آنگاه local-path باید یک دایرکتوری را مشخص کند.

اگر پرچم -a مشخص شده باشد، تلاش می‌شود تا انتقال ناقص پرونده‌های موجود از سر گرفته شود. توجه داشته باشید که ازسرگیری فرض می‌کند هرگونه رونوشت ناقص از پرونده محلی با رونوشت راه دور همخوانی دارد. اگر محتوای پرونده راه دور با نسخه ناقص محلی تفاوت داشته باشد، پرونده نهایی احتمالاً خراب خواهد شد.

اگر پرچم -f مشخص شده باشد، تابع fsync(2) پس از اتمام انتقال پرونده فراخوانی می‌شود تا داده‌ها را بر روی دیسک تخلیه کند.

اگر پرچم -p مشخص شده باشد، تمام مجوزها و زمان‌های دسترسی پرونده نیز رونوشت‌برداری می‌شوند.

اگر پرچم -R مشخص شده باشد، دایرکتوری‌ها به صورت بازگشتی رونوشت‌برداری خواهند شد. توجه داشته باشید که sftp هنگام انجام انتقال‌های بازگشتی، پیوندهای نمادین را دنبال نمی‌کند.

نمایش متن راهنما.
[path]
تغییر دایرکتوری محلی به path. اگر path مشخص نشده باشد، دایرکتوری به پوشهٔ خانگی کاربر محلی تغییر می‌کند.
[ls-options [path]]
نمایش فهرست دایرکتوری محلی برای path یا دایرکتوری کنونی در صورتی که path مشخص نشده باشد. آرگومان ls-options می‌تواند شامل هر پرچمی باشد که توسط دستور ls(1) در سیستم محلی پشتیبانی می‌شود. مسیر path می‌تواند شامل نویسه‌های الگوی glob(7) باشد و ممکن است با چند پرونده تطابق یابد.
path
ایجاد دایرکتوری محلی مشخص‌شده توسط path.
[-s] oldpath newpath
ایجاد یک پیوند از oldpath به newpath. اگر پرچم -s مشخص شده باشد، پیوند ایجادشده یک پیوند نمادین (symbolic link) خواهد بود؛ در غیر این صورت یک پیوند سخت (hard link) است.
چاپ مسیر دایرکتوری کاری محلی.
[-1afhlnrSt] [path]
نمایش فهرست دایرکتوری راه دور برای path یا دایرکتوری کنونی در صورتی که path مشخص نشده باشد. مسیر path می‌تواند شامل نویسه‌های الگوی glob(7) باشد و ممکن است با چند پرونده مطابقت پیدا کند.

پرچم‌های زیر پشتیبانی می‌شوند و رفتار ls را بر این اساس تغییر می‌دهند:

تولید خروجی تک‌ستونی.
فهرست کردن پرونده‌هایی که با یک نقطه (‘.’) آغاز می‌شوند.
مرتب نکردن فهرست. ترتیب مرتب‌سازی پیش‌فرض بر اساس الفبا (lexicographical) است.
در صورت استفاده با گزینه قالب‌بندی طولانی، از پسوندهای واحد استفاده می‌کند: بایت، کیلوبایت، مگابایت، گیگابایت، ترابایت، پتابایت و اگزابایت تا با استفاده از توان‌های ۲ برای اندازه‌ها (K=1024, M=1048576 و غیره) تعداد ارقام را به چهار رقم یا کمتر کاهش دهد.
نمایش جزئیات بیشتر شامل اطلاعات مجوزها و مالکیت.
تولید یک فهرست طولانی با نمایش عددی اطلاعات کاربر و گروه.
معکوس کردن ترتیب مرتب‌سازی فهرست.
مرتب‌سازی فهرست بر اساس اندازه پرونده.
مرتب‌سازی فهرست بر اساس زمان آخرین تغییر.
umask
تنظیم umask محلی به umask.
path
ایجاد دایرکتوری راه دور مشخص‌شده توسط path.
تغییر وضعیت نمایش نوار سنجش پیشرفت.
[-afpR] local-path [remote-path]
بارگذاری local-path و ذخیره آن روی رایانه راه دور. اگر نام مسیر راه دور مشخص نشده باشد، همان نامی را می‌گیرد که در رایانه محلی دارد. مسیر local-path می‌تواند شامل نویسه‌های glob(7) باشد و ممکن است با چند پرونده مطابقت یابد. اگر چنین باشد و remote-path مشخص شده باشد، آنگاه remote-path باید یک پوشه را مشخص کند.

اگر پرچم -a مشخص شده باشد، تلاش می‌شود تا انتقال‌های ناقص پرونده‌های موجود از سر گرفته شود. توجه داشته باشید که ازسرگیری فرض می‌کند هرگونه رونوشت ناقص از پرونده راه دور با نسخه محلی همخوانی دارد. اگر محتوای پرونده محلی با نسخه ناقص راه دور مغایرت داشته باشد، پرونده نهایی احتمالاً خراب خواهد شد.

اگر پرچم -f مشخص شده باشد، درخواستی به سرور ارسال می‌شود تا پس از انتقال پرونده، fsync(2) را فراخوانی کند. توجه داشته باشید که این ویژگی تنها توسط سرورهایی پشتیبانی می‌شود که افزونهٔ "fsync@openssh.com" را پیاده‌سازی کرده باشند.

اگر پرچم -p مشخص شده باشد، تمام مجوزها و زمان‌های دسترسی پرونده نیز رونوشت‌برداری می‌شوند.

اگر پرچم -R مشخص شده باشد، دایرکتوری‌ها به صورت بازگشتی رونوشت‌برداری خواهند شد. توجه داشته باشید که sftp هنگام انجام انتقال‌های بازگشتی، پیوندهای نمادین را دنبال نمی‌کند.

نمایش مسیر دایرکتوری کاری راه دور.
خروج از sftp.
[-fpR] remote-path [local-path]
ازسرگیری بارگیری پروندهٔ remote-path. معادل با get با تنظیم بودن پرچم -a.
[-fpR] local-path [remote-path]
ازسرگیری بارگذاری پروندهٔ local-path. معادل با put با تنظیم بودن پرچم -a.
oldpath newpath
تغییر نام پرونده راه دور از oldpath به newpath.
path
حذف پرونده راه دور مشخص‌شده توسط path.
path
حذف دایرکتوری راه دور مشخص‌شده توسط path.
ایجاد یک پیوند نمادین از oldpath به newpath.
نمایش نگارش پروتکل sftp.
command
اجرای command در پوستهٔ محلی.
ورود به پوستهٔ محلی.
مترادف برای راهنما (help).

ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), glob(7), sftp-server(8), sshd(8) T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-filexfer-00.txt, January 2001, work in progress material.

December 6, 2024 Linux 6.12.107+deb13-amd64