کتابخانه‌ی استاندارد · شبکه

اس اس اچ ssh

اتصال SSH، اجرای فرمان روی سرور و کار با پرونده‌ها با SFTP.

واردسازی اس اس اچ

این بسته یک کارخواه SSH به زبان سلام است و به OpenSSH یا کتابخانه‌ی دیگری نیاز ندارد. یک پیکربندی با میزبان و کاربر بسازید، روش ورود را تعیین کنید و با اتصال وصل شوید؛ بعد با اجرا فرمان بفرستید یا با باز کردن اس اف تی پی پرونده جابه‌جا کنید. برای خودکارسازی استقرار و پشتیبان‌گیری مناسب است.

کلید میزبان مثل خود ssh با پرونده‌ی known_hosts بررسی می‌شود. روال‌های بافر و خواننده قالب داده‌ی پروتکل SSH را می‌سازند و می‌خوانند؛ برای برنامه‌های معمولی لازمشان ندارید.

گونه‌ها

پیکربندی Config

ساختار پیکربندی
پیکربندی اتصال SSH.
نامانگلیسیگونهتوضیح
hosthostرشته = ""میزبان.
portportصحیح = 22درگاه؛ پیش‌فرض ۲۲.
useruserرشته = ""نام کاربری.
passwordpasswordرشته = ""گذرواژه.
use_passworduse_passwordمنطقی = نادرستورود با گذرواژه.
key_pemkey_pemرشته = ""کلید خصوصی به شکل متن.
use_keyuse_keyمنطقی = نادرستورود با کلید.
hostkey_modehostkey_modeصحیح = 1حالت بررسی کلید میزبان.
known_hosts_pathknown_hosts_pathرشته = ""مسیر پرونده‌ی known_hosts.
ssh-Config.salam
واردسازی اس اس اچ

روال ریشه:
    ناپایا پ := اس اس اچ.پیکربندی جدید("example.com"، اس اس اچ.پورت پیش فرض، "deploy")
    سرچاپ پ.host، پ.port، پ.user، پ.hostkey_mode == اس اس اچ.حالت پذیرش کلید میزبان تازه
    اس اس اچ.با رمز عبور(پ، "s3cret")
    سرچاپ پ.use_password، پ.use_key
    اس اس اچ.با متن کلید(پ، "-----BEGIN OPENSSH KEY-----")
    سرچاپ پ.use_key، پ.key_pem.طول() > ۰
    سرچاپ اس اس اچ.با فایل کلید(پ، "/nonexistent/id_rsa")
    اس اس اچ.با حالت کلید میزبان(پ، اس اس اچ.حالت کلید میزبان سخت‌گیر)
    اس اس اچ.با مسیر میزبان های شناخته شده(پ، "/home/deploy/.ssh/known_hosts")
    سرچاپ پ.hostkey_mode، پ.known_hosts_path
    سرچاپ اس اس اچ.حالت کلید میزبان ناامن، اس اس اچ.نسخه کلاینت
پایان
خروجیexample.com 22 deploy true true false true true false 2 /home/deploy/.ssh/known_hosts 0 SSH-2.0-Salam_1.0

نشست Session

ساختار نشست
یک نشست روی اتصال: یک فرمان یا یک پوسته.
نامانگلیسیگونهتوضیح
chchChannelکانال SSH.
okokمنطقی = نادرستنشست باز شد.
ssh-Exec.salam
واردسازی اس اس اچ

روال ریشه:
    ناپایا پ := اس اس اچ.پیکربندی جدید("server.example.com"، ۲۲، "deploy")
    _ := اس اس اچ.با فایل کلید(پ، "/home/deploy/.ssh/id_rsa")
    ناپایا ک := اس اس اچ.اتصال(پ)
    اگر وارونه اس اس اچ.معتبر(ک):
        سرچاپ "خطا:"، اس اس اچ.خطا(ک)
        برگشت
    پایان
    سرچاپ "کلید میزبان:"، اس اس اچ.اثر انگشت کلید میزبان(ک)

    ن := اس اس اچ.اجرا(ک، "uname -a")
    سرچاپ ن.ok، ن.exit_code، ن.stdout، ن.stderr
    ن۲ := اس اس اچ.اجرای دستور(ک، "df -h /")
    سرچاپ ن۲.stdout

    ناپایا ن‌ش := اس اس اچ.نشست جدید(ک)
    _ := اس اس اچ.درخواست پی تی وای(ن‌ش، ک، "xterm"، ۱۲۰، ۴۰)
    اگر اس اس اچ.شروع(ن‌ش، ک، "tail -f /var/log/app.log"):
        تکرار ۱۰:
            _ := اس اس اچ.گام خواندن(ن‌ش، ک)
            چاپ اس اس اچ.تخلیه خروجی(ن‌ش)
            چاپ اس اس اچ.تخلیه خروجی خطا(ن‌ش)
        پایان
    پایان
    اس اس اچ.بستن نشست(ن‌ش، ک)

    ناپایا پوسته := اس اس اچ.نشست جدید(ک)
    اگر اس اس اچ.پوسته(پوسته، ک):
        _ := اس اس اچ.نوشتن ورودی(پوسته، ک، "echo سلام\nexit\n")
        اس اس اچ.بستن ورودی(پوسته، ک)
        کد := اس اس اچ.انتظار(پوسته، ک)
        سرچاپ کد، اس اس اچ.کد خروج(پوسته)، اس اس اچ.نشست بسته شده(پوسته)
        سرچاپ اس اس اچ.خروجی(پوسته)، اس اس اچ.خروجی خطا(پوسته)
    پایان
    اس اس اچ.بستن نشست(پوسته، ک)

    ب := اس اس اچ.شماره گیری(پ)
    سرچاپ اس اس اچ.معتبر(ب)
    سرچاپ اس اس اچ.اتصال مجدد(ک)
    سرچاپ اس اس اچ.خودآزمایی()
    اس اس اچ.بستن(ک)
پایان

نتیجه اجرا ExecResult

ساختار نتیجه اجرا
نتیجه‌ی اجرای یک فرمان.
نامانگلیسیگونهتوضیح
stdoutstdoutرشته = ""خروجی.
stderrstderrرشته = ""خروجی خطا.
exit_codeexit_codeصحیح = -1کد خروج.
okokمنطقی = نادرستفرمان اجرا شد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

اس اف تی پی Sftp

ساختار اس اف تی پی
یک نشست SFTP برای کار با پرونده‌های سرور.
نامانگلیسیگونهتوضیح
chchChannelکانال.
okokمنطقی = نادرستباز شد.
next_idnext_idطبیعی۳۲شماره‌ی درخواست بعدی.
ssh-Sftp.salam
واردسازی اس اس اچ

روال ریشه:
    ناپایا پ := اس اس اچ.پیکربندی جدید("files.example.com"، ۲۲، "ali")
    اس اس اچ.با رمز عبور(پ، "s3cret")
    ناپایا ک := اس اس اچ.اتصال(پ)
    ناپایا ف := اس اس اچ.باز کردن اس اف تی پی(ک)
    اگر وارونه ف.ok:
        سرچاپ اس اس اچ.خطا(ک)
        برگشت
    پایان
    سرچاپ اس اس اچ.ساخت مسیر کامل(ک، ف، "/backup/2026/09")
    سرچاپ اس اس اچ.بارگذاری(ک، ف، "report.pdf"، "/backup/2026/09/report.pdf")
    سرچاپ اس اس اچ.ارسال پوشه(ک، ف، "site"، "/var/www/site")
    اگر اس اس اچ.وجود دارد(ک، ف، "/backup/2026/09/report.pdf"):
        ا := اس اس اچ.وضعیت(ک، ف، "/backup/2026/09/report.pdf")
        سرچاپ ا.name، ا.size، ا.is_dir، ا.permissions
    پایان
    هر ا در اس اس اچ.لیست پوشه(ک، ف، "/backup"):
        سرچاپ ا.name، ا.is_dir
    پایان
    سرچاپ اس اس اچ.پیوند است(ک، ف، "/current")، اس اس اچ.وضعیت پیوند(ک، ف، "/current").name
    _ := اس اس اچ.دانلود(ک، ف، "/etc/hostname"، "hostname.txt")
    _ := اس اس اچ.دریافت پوشه(ک، ف، "/var/log/app"، "logs")
    _ := اس اس اچ.تغییر نام(ک، ف، "/tmp/a"، "/tmp/b")
    _ := اس اس اچ.حذف(ک، ف، "/tmp/b")
    _ := اس اس اچ.ساخت پوشه(ک، ف، "/tmp/x")
    _ := اس اس اچ.حذف پوشه(ک، ف، "/tmp/x")
    _ := اس اس اچ.حذف همه(ک، ف، "/tmp/old")
    اس اس اچ.بستن اس اف تی پی(ک، ف)
    اس اس اچ.بستن(ک)
پایان

اطلاعات فایل اس اف تی پی SftpFileInfo

ساختار اطلاعات فایل اس اف تی پی
اطلاعات یک پرونده.
نامانگلیسیگونهتوضیح
namenameرشته = ""نام.
sizesizeصحیح۶۴اندازه بر حسب بایت.
is_diris_dirمنطقی = نادرستپوشه است.
permissionspermissionsطبیعی۳۲مجوزها به شکل عدد یونیکس.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

کارخواه Client

ساختار کارخواه
یک اتصال SSH.
نامانگلیسیگونهتوضیح
transporttransportTransportلایه‌ی رمزشده.
cfgcfgپیکربندیپیکربندی.
connectedconnectedمنطقی = نادرستوصل است.
errmsgerrmsgرشته = ""پیام خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

پایاها و متغیرها

پورت پیش فرض DefaultPort

پایا پورت پیش فرض: صحیح۳۲ = 22
درگاه پیش‌فرض SSH: ۲۲.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

نسخه کلاینت ClientVersion

پایا نسخه کلاینت: رشته = "SSH-2.0-Salam_1.0"
رشته‌ی نسخه‌ای که کارخواه در آغاز اتصال می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

حالت کلید میزبان ناامن HOSTKEY_MODE_INSECURE

پایا حالت کلید میزبان ناامن: صحیح۳۲ = 0
حالت کلید میزبان: بررسی نشود؛ اتصال در برابر حمله‌ی مرد میانی بی‌دفاع است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

حالت پذیرش کلید میزبان تازه HOSTKEY_MODE_ACCEPT_NEW

پایا حالت پذیرش کلید میزبان تازه: صحیح۳۲ = 1
حالت کلید میزبان: میزبان تازه پذیرفته و در known_hosts ثبت شود، ولی کلید عوض‌شده رد شود؛ پیش‌فرض.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

حالت کلید میزبان سخت‌گیر HOSTKEY_MODE_STRICT

پایا حالت کلید میزبان سخت‌گیر: صحیح۳۲ = 2
حالت کلید میزبان: فقط میزبان‌هایی که در known_hosts هستند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

روال‌ها

پیکربندی جدید NewConfig

روال پیکربندی جدید(host: رشته، port: صحیح، user: رشته): پیکربندی
پیکربندی تازه برای میزبان، درگاه و کاربر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

با رمز عبور WithPassword

روال با رمز عبور(cfg &: پیکربندی، password: رشته)
ورود با گذرواژه را تنظیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

با فایل کلید WithKeyFile

روال با فایل کلید(cfg &: پیکربندی، path: رشته): منطقی
کلید خصوصی را از پرونده می‌خواند؛ اگر خوانده نشد، نادرست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

با متن کلید WithKeyPEM

روال با متن کلید(cfg &: پیکربندی، pem: رشته)
کلید خصوصی را از متن می‌گیرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

با حالت کلید میزبان WithHostKeyMode

روال با حالت کلید میزبان(cfg &: پیکربندی، mode: صحیح)
حالت بررسی کلید میزبان را تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

با مسیر میزبان های شناخته شده WithKnownHostsPath

روال با مسیر میزبان های شناخته شده(cfg &: پیکربندی، path: رشته)
پرونده‌ی known_hosts دیگری به کار می‌برد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Config.salam

خودآزمایی SelfTest

روال خودآزمایی(): صحیح
آزمون‌های درونی بسته را اجرا می‌کند؛ شمار شکست‌ها را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

نشست جدید NewSession

روال نشست جدید(client &: کارخواه): نشست
نشست تازه باز می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

درخواست پی تی وای RequestPty

روال درخواست پی تی وای(session &: نشست، client &: کارخواه، term: رشته، cols: صحیح، rows: صحیح): منطقی
ترمینال مجازی با نوع و اندازه‌ی داده‌شده می‌خواهد؛ برای فرمان‌هایی که ترمینال لازم دارند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

شروع Start

روال شروع(session &: نشست، client &: کارخواه، cmd: رشته): منطقی
فرمانی را در نشست آغاز می‌کند و منتظر نمی‌ماند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

پوسته Shell

روال پوسته(session &: نشست، client &: کارخواه): منطقی
پوسته‌ی کاربر را آغاز می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

انتظار Wait

روال انتظار(session &: نشست، client &: کارخواه): صحیح
تا پایان فرمان صبر می‌کند و کد خروج را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

گام خواندن ReadStep

روال گام خواندن(session &: نشست، client &: کارخواه): منطقی
یک بار داده‌ی رسیده را می‌خواند؛ برای خواندن تدریجی خروجی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

خروجی Output

روال خروجی(session: نشست): رشته
همه‌ی خروجی تا اکنون.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

خروجی خطا StderrOutput

روال خروجی خطا(session: نشست): رشته
همه‌ی خروجی خطا تا اکنون.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

تخلیه خروجی DrainOutput

روال تخلیه خروجی(session &: نشست): رشته
خروجی تازه را برمی‌گرداند و از بافر برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

تخلیه خروجی خطا DrainStderrOutput

روال تخلیه خروجی خطا(session &: نشست): رشته
خروجی خطای تازه را برمی‌گرداند و برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

کد خروج ExitCode

روال کد خروج(session: نشست): صحیح
کد خروج؛ اگر هنوز تمام نشده، ۱-.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

نشست بسته شده SessionClosed

روال نشست بسته شده(session: نشست): منطقی
نشست بسته شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

نوشتن ورودی WriteInput

روال نوشتن ورودی(session &: نشست، client &: کارخواه، data: رشته): منطقی
به ورودی فرمان می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

بستن ورودی CloseInput

روال بستن ورودی(session &: نشست، client &: کارخواه)
ورودی را می‌بندد تا فرمان پایان داده را بفهمد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

بستن نشست CloseSession

روال بستن نشست(session &: نشست، client &: کارخواه)
نشست را می‌بندد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

اجرا Exec

روال اجرا(client &: کارخواه، cmd: رشته): نتیجه اجرا
فرمانی را اجرا می‌کند و تا پایانش صبر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

باز کردن اس اف تی پی SftpOpen

روال باز کردن اس اف تی پی(client &: کارخواه): اس اف تی پی
زیرسامانه‌ی SFTP را روی اتصال باز می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

بستن اس اف تی پی SftpClose

روال بستن اس اف تی پی(client &: کارخواه، sftp &: اس اف تی پی)
SFTP را می‌بندد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

بارگذاری Upload

روال بارگذاری(client &: کارخواه، sftp &: اس اف تی پی، local_path: رشته، remote_path: رشته): منطقی
پرونده‌ی محلی را بارگذاری می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

دانلود Download

روال دانلود(client &: کارخواه، sftp &: اس اف تی پی، remote_path: رشته، local_path: رشته): منطقی
پرونده‌ی سرور را دانلود می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

ساخت پوشه Mkdir

روال ساخت پوشه(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): منطقی
پوشه می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

حذف Remove

روال حذف(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): منطقی
پرونده را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

حذف پوشه Rmdir

روال حذف پوشه(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): منطقی
پوشه‌ی خالی را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

تغییر نام Rename

روال تغییر نام(client &: کارخواه، sftp &: اس اف تی پی، old_path: رشته، new_path: رشته): منطقی
نام را عوض می‌کند یا جابه‌جا می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

وضعیت Stat

روال وضعیت(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): اطلاعات فایل اس اف تی پی
اطلاعات پرونده؛ پیوند را دنبال می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

وجود دارد Exists

روال وجود دارد(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): منطقی
پرونده یا پوشه هست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

لیست پوشه ListDir

روال لیست پوشه(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): وکتور<اطلاعات فایل اس اف تی پی>
محتوای پوشه، بدون . و ...

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

ساخت مسیر کامل MkdirAll

روال ساخت مسیر کامل(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): منطقی
پوشه و همه‌ی پوشه‌های بالاترش را می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

حذف همه RemoveAll

روال حذف همه(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): منطقی
پوشه و همه‌ی محتوایش را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

دریافت پوشه DownloadDir

روال دریافت پوشه(client &: کارخواه، sftp &: اس اف تی پی، remote_path: رشته، local_path: رشته): منطقی
پوشه را با همه‌ی محتوا دانلود می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

ارسال پوشه UploadDir

روال ارسال پوشه(client &: کارخواه، sftp &: اس اف تی پی، local_path: رشته، remote_path: رشته): منطقی
پوشه‌ی محلی را با همه‌ی محتوا بارگذاری می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

وضعیت پیوند Lstat

روال وضعیت پیوند(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): اطلاعات فایل اس اف تی پی
اطلاعات خود پیوند، بی‌آنکه دنبالش کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

روال پیوند است(client &: کارخواه، sftp &: اس اف تی پی، path: رشته): منطقی
پیوند نمادین است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Sftp.salam

بافر جدید NewBuf

روال بافر جدید(cap0: صحیح): Buf
بافر خالی برای ساختن پیام‌های پروتکل SSH.
ssh-Wire.salam
واردسازی اس اس اچ

روال ریشه:
    ناپایا ب := اس اس اچ.بافر جدید(۶۴)
    اس اس اچ.افزودن بایت(ب، ۲۰)
    اس اس اچ.افزودن یو۳۲(ب، ۷ برگردان طبیعی۳۲)
    اس اس اچ.افزودن یو۶۴(ب، ۹ برگردان طبیعی۶۴)
    اس اس اچ.افزودن بولی(ب، درست)
    اس اس اچ.افزودن رشته متن(ب، "ssh-ed25519,rsa-sha2-256")
    اس اس اچ.افزودن رشته(ب، "abc" برگردان تهی*، ۳)
    اس اس اچ.افزودن بایت ها(ب، "xy" برگردان تهی*، ۲)
    اس اس اچ.افزودن صفرها(ب، ۲)
    اس اس اچ.افزودن ام پی اینت(ب، "\x80" برگردان تهی*، ۱)
    سرچاپ ب.len

    ناپایا ر := اس اس اچ.خواننده از بافر(ب)
    سرچاپ اس اس اچ.دریافت بایت(ر)، اس اس اچ.دریافت یو۳۲(ر)، اس اس اچ.دریافت یو۶۴(ر)، اس اس اچ.دریافت بولی(ر)
    فهرست := اس اس اچ.دریافت لیست نام(ر)
    سرچاپ فهرست، اس اس اچ.شامل لیست نام(فهرست، "rsa-sha2-256")
    سرچاپ اس اس اچ.دریافت رشته متن(ر)
    اس اس اچ.رد شدن(ر، ۴)
    سرچاپ اس اس اچ.باقی مانده(ر)
    ن := اس اس اچ.خواندن ام پی اینت(ر)
    سرچاپ ن.len، اس اس اچ.باقی مانده(ر)

    سرچاپ اس اس اچ.توافق اولین تطابق("aes256-ctr,aes128-ctr"، "aes128-ctr,aes256-ctr")
    سرچاپ اس اس اچ.برابری زمان ثابت("abcd" برگردان تهی*، "abcd" برگردان تهی*، ۴)، اس اس اچ.برابری زمان ثابت("abcd" برگردان تهی*، "abce" برگردان تهی*، ۴)

    ناپایا ب۲ := اس اس اچ.بافر جدید(۱۶)
    اس اس اچ.افزودن رشته بافر(ب۲، ب)
    اس اس اچ.افزودن ام پی اینت بافر(ب۲، ب)
    اس اس اچ.افزودن بافر(ب۲، ب)
    ناپایا ر۲ := اس اس اچ.خواننده جدید(ب۲.p، ب۲.len)
    نما := اس اس اچ.دریافت نمای رشته(ر۲)
    سرچاپ نما.len == ب.len
    ناپایا کپی := اس اس اچ.کپی رشته(اس اس اچ.خواننده از بافر(ب۲))
    ناپایا عدد := اس اس اچ.کپی ام پی اینت(ر۲)
    سرچاپ کپی.len، عدد.len، اس اس اچ.باقی مانده(ر۲)
    اس اس اچ.پاک سازی بافر(ب)
    اس اس اچ.آزادسازی بافر(ب)
    اس اس اچ.آزادسازی بافر(ب۲)
    اس اس اچ.آزادسازی بافر(کپی)
    اس اس اچ.آزادسازی بافر(عدد)
پایان
خروجی59 20 7 9 true ssh-ed25519,rsa-sha2-256 true abc 6 1 0 aes256-ctr true false true 59 59 59

آزادسازی بافر FreeBuf

روال آزادسازی بافر(b &: Buf)
بافر را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

پاک سازی بافر WipeBuf

روال پاک سازی بافر(b &: Buf)
محتوای بافر را صفر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن بایت BufPutByte

روال افزودن بایت(b &: Buf، v: صحیح)
یک بایت می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن بایت ها BufPutBytes

روال افزودن بایت ها(b &: Buf، p: تهی*، n: صحیح)
بایت‌های حافظه را می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن بافر BufPutBuf

روال افزودن بافر(b &: Buf، src: Buf)
محتوای بافر دیگر را می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن صفرها BufPutZeros

روال افزودن صفرها(b &: Buf، n: صحیح)
n بایت صفر می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن یو۳۲ BufPutUint32

روال افزودن یو۳۲(b &: Buf، v: طبیعی۳۲)
عدد ۳۲ بیتی بزرگ‌پایان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن یو۶۴ BufPutUint64

روال افزودن یو۶۴(b &: Buf، v: طبیعی۶۴)
عدد ۶۴ بیتی بزرگ‌پایان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن بولی BufPutBool

روال افزودن بولی(b &: Buf، v: منطقی)
بولی به شکل یک بایت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن رشته BufPutString

روال افزودن رشته(b &: Buf، p: تهی*، n: صحیح)
رشته‌ی SSH: طول ۴ بایتی و بعد بایت‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن رشته بافر BufPutStringBuf

روال افزودن رشته بافر(b &: Buf، src: Buf)
بافر را به شکل رشته‌ی SSH می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن رشته متن BufPutStringStr

روال افزودن رشته متن(b &: Buf، s: رشته)
متن را به شکل رشته‌ی SSH می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن ام پی اینت BufPutMpintBytes

روال افزودن ام پی اینت(b &: Buf، p: تهی*، n: صحیح)
عدد بزرگ mpint از بایت‌های بزرگ‌پایان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

افزودن ام پی اینت بافر BufPutMpintBuf

روال افزودن ام پی اینت بافر(b &: Buf، src: Buf)
mpint از یک بافر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

خواننده جدید NewReader

روال خواننده جدید(p: تهی*، n: صحیح): Reader
خواننده روی حافظه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

خواننده از بافر ReaderFromBuf

روال خواننده از بافر(b: Buf): Reader
خواننده روی یک بافر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

باقی مانده RRemaining

روال باقی مانده(r: Reader): صحیح
بایت‌های خوانده‌نشده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

دریافت بایت RGetByte

روال دریافت بایت(r &: Reader): صحیح
یک بایت می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

دریافت بولی RGetBool

روال دریافت بولی(r &: Reader): منطقی
بولی می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

رد شدن RSkip

روال رد شدن(r &: Reader، n: صحیح)
n بایت رد می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

دریافت یو۳۲ RGetUint32

روال دریافت یو۳۲(r &: Reader): طبیعی۳۲
عدد ۳۲ بیتی می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

دریافت یو۶۴ RGetUint64

روال دریافت یو۶۴(r &: Reader): طبیعی۶۴
عدد ۶۴ بیتی می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

دریافت نمای رشته RGetStringView

روال دریافت نمای رشته(r &: Reader): Reader
رشته‌ی SSH را بدون کپی، به شکل خواننده‌ای روی همان حافظه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

کپی رشته RGetStringCopy

روال کپی رشته(r &: Reader): Buf
رشته‌ی SSH را در بافر تازه کپی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

دریافت رشته متن RGetStringAsStr

روال دریافت رشته متن(r &: Reader): رشته
رشته‌ی SSH را به شکل متن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

خواندن ام پی اینت RGetMpintView

روال خواندن ام پی اینت(r &: Reader): Reader
mpint را بدون کپی و بدون صفر آغازین.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

کپی ام پی اینت RGetMpintCopy

روال کپی ام پی اینت(r &: Reader): Buf
mpint را کپی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

دریافت لیست نام RGetNameList

روال دریافت لیست نام(r &: Reader): رشته
فهرست نام‌ها، مثل الگوریتم‌ها، جداشده با ویرگول.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

شامل لیست نام NameListContains

روال شامل لیست نام(list: رشته، name: رشته): منطقی
فهرست نام‌ها این نام را دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

توافق اولین تطابق NegotiateFirstMatch

روال توافق اولین تطابق(mine: رشته، theirs: رشته): رشته
نخستین نام از فهرست خودی که طرف مقابل هم دارد؛ همان قاعده‌ی توافق الگوریتم در SSH.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

برابری زمان ثابت ConstantTimeEqual

روال برابری زمان ثابت(a: تهی*، b: تهی*، n: صحیح): منطقی
دو حافظه را در زمان ثابت مقایسه می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Wire.salam

شماره گیری Dial

روال شماره گیری(cfg: پیکربندی): کارخواه
به سرور وصل می‌شود و کلید میزبان را بررسی می‌کند، بدون ورود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

اتصال Connect

روال اتصال(cfg: پیکربندی): کارخواه
وصل می‌شود و وارد می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

معتبر Ok

روال معتبر(client: کارخواه): منطقی
اتصال و ورود موفق بود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

خطا Error

روال خطا(client: کارخواه): رشته
پیام خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

اثر انگشت کلید میزبان HostKeyFingerprint

روال اثر انگشت کلید میزبان(client: کارخواه): رشته
اثر انگشت SHA-256 کلید میزبان، همان که ssh نشان می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

بستن Close

روال بستن(client &: کارخواه)
اتصال را می‌بندد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

اتصال مجدد Reconnect

روال اتصال مجدد(client &: کارخواه): منطقی
با همان پیکربندی دوباره وصل می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam

اجرای دستور RunCommand

روال اجرای دستور(client &: کارخواه، cmd: رشته): نتیجه اجرا
مثل اجرا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ssh-Exec.salam