یک خبر کوتاه
یکی از ابزارهای خوب، رایگان و بدون تحریم و فیلتر البته نه به خوبی GPT وجود داره
کوپایلت در ویندوز (حتی کرک شده) به صورت رایگان و بدون تحریم و فیلتر در دسترس هستش.
برای استفاده کافی است در سرچ ویندوز copilot رو سرچ و با یه اکانت outlook از آن استفاده کنید.
یکی از ابزارهای خوب، رایگان و بدون تحریم و فیلتر البته نه به خوبی GPT وجود داره
کوپایلت در ویندوز (حتی کرک شده) به صورت رایگان و بدون تحریم و فیلتر در دسترس هستش.
برای استفاده کافی است در سرچ ویندوز copilot رو سرچ و با یه اکانت outlook از آن استفاده کنید.
Forwarded from Recommender system (MehriMah Amiri)
LLM Agents MOOC
This course covers the following topics
- Foundation of LLMs
- Reasoning
- Planning, tool use
- LLM agent infrastructure
- Retrieval-augmented generation
- Code generation, data science
- Multimodal agents, robotics
- Evaluation and benchmarking on agent applications
- Privacy, safety and ethics
- Human-agent interaction, personalization, alignment
- Multi-agent collaboration
🔗 link : https://www.youtube.com/playlist?list=PLS01nW3RtgopsNLeM936V4TNSsvvVglLc
#llms #agents #mooc #onlinecourse #nlproc #deeplearning
This course covers the following topics
- Foundation of LLMs
- Reasoning
- Planning, tool use
- LLM agent infrastructure
- Retrieval-augmented generation
- Code generation, data science
- Multimodal agents, robotics
- Evaluation and benchmarking on agent applications
- Privacy, safety and ethics
- Human-agent interaction, personalization, alignment
- Multi-agent collaboration
🔗 link : https://www.youtube.com/playlist?list=PLS01nW3RtgopsNLeM936V4TNSsvvVglLc
#llms #agents #mooc #onlinecourse #nlproc #deeplearning
Forwarded from دستاوردهای یادگیری عمیق(InTec)
سال 2020 درمورد نحوه استفاده از
بعدتر درمورد
دیروز دیدم یک تیم ایرانی شدیدا درگیر پردازش یک حجم بزرگ از گراف هستند که خب
قبل خرید و تصمیمات … گرفتن یک مشاوره از من گرفتند؛ کد رو بردم روی
خواستم یادآوری کنم که؛ حواستون به پستهای قدیمی کانال هم باشه؛ بعضیاش طلاس
زمان لازم داره تا ارزشش مشخص بشه.
Rapids
توی شرکتی که اون زمان کار میکردم گفتم.بعدتر درمورد
cuGraph
هم صحبت کردم.دیروز دیدم یک تیم ایرانی شدیدا درگیر پردازش یک حجم بزرگ از گراف هستند که خب
networkX
سالها طول میکشهقبل خرید و تصمیمات … گرفتن یک مشاوره از من گرفتند؛ کد رو بردم روی
cuGraph
و پردازش تا 300x
سریعتر شد؛ قطعا بیشتر هم میشد ولی نیاز به اپتیمایز کردن نبود.خواستم یادآوری کنم که؛ حواستون به پستهای قدیمی کانال هم باشه؛ بعضیاش طلاس
زمان لازم داره تا ارزشش مشخص بشه.
🔥1
بعد معرفی قابلیت سرچ در chatGpt حالا یه اکستنشن هم براش درست کرده که روی گوگل کروم نصب میشه و از این به بعد به جای سرچ توی گوگل، توی Gpt سرچ انجام میشه.
پارسال، گوگل بیشترین درآمدشو از سرچ به دست آورد و الان به نظر میاد گوگل تهدید وجودی داره :)
البته یخورده مشکل داره هنوز مثل تحریم
یا مثلا اینکه به صورت پیش فرض جای سرچ گوگل رو میگیره که g! در گوگل سرچ میکنه که خوب یخورده سخته
دانلود در این لینک
پارسال، گوگل بیشترین درآمدشو از سرچ به دست آورد و الان به نظر میاد گوگل تهدید وجودی داره :)
البته یخورده مشکل داره هنوز مثل تحریم
یا مثلا اینکه به صورت پیش فرض جای سرچ گوگل رو میگیره که g! در گوگل سرچ میکنه که خوب یخورده سخته
دانلود در این لینک
Google
ChatGPT Sidebar & GPT-4 Vision, GPT-4o, Claude 3.5, Gemini 1.5 | AITOPIA - Chrome Web Store
ChatGPT Sidebar & GPT-4 Vision by AITOPIA helps you to use ChatGPT-4o & Claude 3.5 in every browser tab easily
👍1
Forwarded from Deep Time
خداحافظ Adam
با معرفی ADOPT بهتره Optimizer مدلهای Deep Learning و LLM رو تغییر بدیم. مشکل اساسی Adam در واقع عدم تضمین convergence در فرآیند آپدیت وزنها بود که در ADOPT حل شده. اما این برتری فقط در تئوری نیست و در عمل هم در اکثریت مسائل از جمله pretraining در GPT-2 بهتر بوده.
ایده اصلی و راه حل برای تضمین همگرایی هم دو مورد هست:
۱_ حذف گرادیان کنونی از تخمین momentum دوم
۲_ نرمالایز کردن گرادیان، قبل از آپدیت momentum
Paper
Github
کد:
با معرفی ADOPT بهتره Optimizer مدلهای Deep Learning و LLM رو تغییر بدیم. مشکل اساسی Adam در واقع عدم تضمین convergence در فرآیند آپدیت وزنها بود که در ADOPT حل شده. اما این برتری فقط در تئوری نیست و در عمل هم در اکثریت مسائل از جمله pretraining در GPT-2 بهتر بوده.
ایده اصلی و راه حل برای تضمین همگرایی هم دو مورد هست:
۱_ حذف گرادیان کنونی از تخمین momentum دوم
۲_ نرمالایز کردن گرادیان، قبل از آپدیت momentum
Paper
Github
کد:
from adopt import ADOPT
#optimizer = Adam(model.parameters(), lr=1e-3)
optimizer = ADOPT(model.parameters(), lr=1e-3)
همین طور که مدل های مختلف توسعه پیدا میکنن صفحه های چت هم براشون ساخته میشه، یکی از بعدهای اوپن سورسی که قبلا زیاد بود مدل های شرکت Mistral هستند که به تازگی صفحه چت شون هم در این لینک در دسترسه
اما قابلیت هاش
سرچ وب و canvas و تولید عکس با مدل Flux هست.
اگه با شماره هم ریجستر کنی کلی امکانت از api و rag و fine tune و.... بهت میده
اما متاسفانه تحریم هستیم
اما قابلیت هاش
سرچ وب و canvas و تولید عکس با مدل Flux هست.
اگه با شماره هم ریجستر کنی کلی امکانت از api و rag و fine tune و.... بهت میده
اما متاسفانه تحریم هستیم
یه ایمیل outlook ساخته بودم برای کوپایلت(تازه فهمیدم میتونه عکس هم تولید کنه البته)
رفتم Microsoft 365 لاگین کردم و دیدم
امکانات خوب دیگری هم هست
از ورد و اکسل و پاور آنلاین تحت وب با قابلیت به اشتراک گذاری
دانلود و آپلود و ذخیره سازی ورژنهای مختلف(محل نگهداریش هم onedrive هست)
به نظرم که از گوگل داک خیلی بهتر و روان تر هست و نکته مهم اینکه میتونه با کوپلیت(البته پولی) هم سینک بشه
رفتم Microsoft 365 لاگین کردم و دیدم
امکانات خوب دیگری هم هست
از ورد و اکسل و پاور آنلاین تحت وب با قابلیت به اشتراک گذاری
دانلود و آپلود و ذخیره سازی ورژنهای مختلف(محل نگهداریش هم onedrive هست)
به نظرم که از گوگل داک خیلی بهتر و روان تر هست و نکته مهم اینکه میتونه با کوپلیت(البته پولی) هم سینک بشه
👏1
Forwarded from توییتر فارسی
من ۸ ساله که توی پروداکتهای مختلف کد پایتون میزنم.
دیروز درحالی که از یه مشکلی داشتم به خود میپیچیدم، دختری که همکارمه و ۷ سال ازم کوچیکتره، گفت پکیج رو با e- نصب کن درسته میشه. و شد!
من توی این همه سال تا حالا نمیدونستم
pip install -e چیکار میکنه.
درود بر سوادت توی اون سن زن.
• Arashsyh •
@OfficialPersianTwitter
دیروز درحالی که از یه مشکلی داشتم به خود میپیچیدم، دختری که همکارمه و ۷ سال ازم کوچیکتره، گفت پکیج رو با e- نصب کن درسته میشه. و شد!
من توی این همه سال تا حالا نمیدونستم
pip install -e چیکار میکنه.
درود بر سوادت توی اون سن زن.
• Arashsyh •
@OfficialPersianTwitter
توییتر فارسی
من ۸ ساله که توی پروداکتهای مختلف کد پایتون میزنم. دیروز درحالی که از یه مشکلی داشتم به خود میپیچیدم، دختری که همکارمه و ۷ سال ازم کوچیکتره، گفت پکیج رو با e- نصب کن درسته میشه. و شد! من توی این همه سال تا حالا نمیدونستم pip install -e چیکار میکنه. درود…
به مناسبت این حرف بریم ببنیم واقعا این دستور چیکار میکنه چون من هم نمیدونستم :)
به دستور
حالت editable installs میگن
اما این دستور چیکار میکنه؟
تیکه اول که pip install هست که واضحه اما سوییچ e چیکار میکنه(به این - تو دنیای لینوکسی یا یونیکسی میگن سوییچ غالبا). اینکار اجازه میده شما پکیج پایتونی که خودتون نوشتین (الزاما پکیج چیزی مثل نامپای نیست قطعا این کدهای کوتاهی و پر استفاده خودتون میتوانه پکیج باشه) در سیستم خودتون مثل سایر پکیج ها نصب کنین و ازش استفاده کنین. در واقع میاد یه soft link به اصطلاح لینوکسی ها و shortcut به اصطلاح ویندوزی ها میسازه از کد شما و خوبیش اینکه با تغییر تو فایل پکیج این تغییر به طور خودکار اعمال میشه بذارین چند تا مثال بزنم
اول یه مثال که خیلی حرفه نیست فرض کنین من این کد نوشتم که یسری دیتا رو از الستیک میخونه و روی sql میریزه (از ایندکس های مختلف به جدول مختلف) و یه پکیج کامل هست و حالا همکار ما هم میخواد بیاد داده ریختن روی الستیک و Sql رو تو کدش استفاده که در نهایت به یه هدفی برسه
چه جوری من کدم رو بهش بدم
خب چندین راه وجود داره api بهش بدم یا تیکه کدم بهش بدم و ...
یه راهش هم اینکه من . pip install -e کنم پکیج خودم رو و وقتی اون از توی سرور از پایتون استفاده میکنه عملا میتونه پکیج من رو تو برنامه اش import کنه و اگه تو کد من باگی باشه صرفا با اصلاح تو برنامه اون بدون انجام هیچ کاری اعمال میشه
این یه استفاده کثیف که حالا بگذریم
استفاده اصلیش برای تست پکیج نوشته شده است برای همین بهش میگن editable mode
بریم سراغ مثال اصلی
فرض کنید در حال کار در یه تیم هستید و که یک کتابخانه پایتون را توسعه میدید، به اسم data-utils، که توسط چندین پروژه دیگه استفاده میشود. در حالی که روی اون پکیج کار می کنید و دارین اون رو تست میگیرین و باید آن را در چندین پروژه بدون نصب مجدد پس از هر تغییر آزمایش کنید.
ساختار پروژه شما
باید یه فایل setup.py بسازین که ویژگی های پکیج شما رو مشخص میکنه مثل این
بعدش
پکیج تون رو نصب می کنین
حالا بقیه می تونین پروژه تون رو تو کدهای دیگه تست کنین که آیا پکیج درست کار میکنه یا نه
و به محض اعمال تغییر بدون نصب دوباره این تغییرات تو کدهای برای آزمایش یا واقعیت بودن اعمال میشه
به دستور
pip install -e
حالت editable installs میگن
اما این دستور چیکار میکنه؟
تیکه اول که pip install هست که واضحه اما سوییچ e چیکار میکنه(به این - تو دنیای لینوکسی یا یونیکسی میگن سوییچ غالبا). اینکار اجازه میده شما پکیج پایتونی که خودتون نوشتین (الزاما پکیج چیزی مثل نامپای نیست قطعا این کدهای کوتاهی و پر استفاده خودتون میتوانه پکیج باشه) در سیستم خودتون مثل سایر پکیج ها نصب کنین و ازش استفاده کنین. در واقع میاد یه soft link به اصطلاح لینوکسی ها و shortcut به اصطلاح ویندوزی ها میسازه از کد شما و خوبیش اینکه با تغییر تو فایل پکیج این تغییر به طور خودکار اعمال میشه بذارین چند تا مثال بزنم
اول یه مثال که خیلی حرفه نیست فرض کنین من این کد نوشتم که یسری دیتا رو از الستیک میخونه و روی sql میریزه (از ایندکس های مختلف به جدول مختلف) و یه پکیج کامل هست و حالا همکار ما هم میخواد بیاد داده ریختن روی الستیک و Sql رو تو کدش استفاده که در نهایت به یه هدفی برسه
چه جوری من کدم رو بهش بدم
خب چندین راه وجود داره api بهش بدم یا تیکه کدم بهش بدم و ...
یه راهش هم اینکه من . pip install -e کنم پکیج خودم رو و وقتی اون از توی سرور از پایتون استفاده میکنه عملا میتونه پکیج من رو تو برنامه اش import کنه و اگه تو کد من باگی باشه صرفا با اصلاح تو برنامه اون بدون انجام هیچ کاری اعمال میشه
این یه استفاده کثیف که حالا بگذریم
استفاده اصلیش برای تست پکیج نوشته شده است برای همین بهش میگن editable mode
بریم سراغ مثال اصلی
فرض کنید در حال کار در یه تیم هستید و که یک کتابخانه پایتون را توسعه میدید، به اسم data-utils، که توسط چندین پروژه دیگه استفاده میشود. در حالی که روی اون پکیج کار می کنید و دارین اون رو تست میگیرین و باید آن را در چندین پروژه بدون نصب مجدد پس از هر تغییر آزمایش کنید.
data-utils/
├── data_utils/
│ ├── __init__.py
│ ├── utils.py
├── setup.py
├── requirements.txt
└── README.md
ساختار پروژه شما
باید یه فایل setup.py بسازین که ویژگی های پکیج شما رو مشخص میکنه مثل این
from setuptools import setup, find_packages
setup(
name='data-utils',
version='0.1',
packages=find_packages(),
install_requires=[
# project Dependencies here
],
)
بعدش
cd /path/to/data-utils
pip install -e .
پکیج تون رو نصب می کنین
حالا بقیه می تونین پروژه تون رو تو کدهای دیگه تست کنین که آیا پکیج درست کار میکنه یا نه
و به محض اعمال تغییر بدون نصب دوباره این تغییرات تو کدهای برای آزمایش یا واقعیت بودن اعمال میشه
👍1
یه چیز خیلی ساده تو پایتون که قبلاً نمیدونستم و تازه فهمیدم دستور exec هست
اما این دستور چیکار میکنه، یه رشته کد پایتون رو میگیره و خروجی اون کد رو پرینت میکنه
مثال
خب این کد در خروجی یه عدد رندونم بین صفر تا ده تولید میکنه.
اما به چه دردی میخوره
به درد function calling در مدلهای زبانی
فرض کنین با ollama یه مدل لوکال لود کردین میتونین با این دستور کدش رو تو همون چت اجرا کنین فقط باید یخورده هوشمندانه تر از این تابع استفاده کنین
به زودی یه مثال واقعیتر میذارم از استفاده این تابع
داخل پرانتز
( به شکل خیلی بامزهای همین دستور تو sql هم هست که وظیفهاش اجرا sp و یا کوئری string شده است و عملکرد دومش شبیه پایتونه)
اما این دستور چیکار میکنه، یه رشته کد پایتون رو میگیره و خروجی اون کد رو پرینت میکنه
مثال
code= """
import random
print(random.randint(0,10))
"""
exec(code)
خب این کد در خروجی یه عدد رندونم بین صفر تا ده تولید میکنه.
اما به چه دردی میخوره
به درد function calling در مدلهای زبانی
فرض کنین با ollama یه مدل لوکال لود کردین میتونین با این دستور کدش رو تو همون چت اجرا کنین فقط باید یخورده هوشمندانه تر از این تابع استفاده کنین
به زودی یه مثال واقعیتر میذارم از استفاده این تابع
داخل پرانتز
( به شکل خیلی بامزهای همین دستور تو sql هم هست که وظیفهاش اجرا sp و یا کوئری string شده است و عملکرد دومش شبیه پایتونه)
👍1
یه فرمتی که غالب برنامههای که مدل زبانی لوکال ران میکنن gguf هست.
فرمت GGUF (Grokking GPU-Friendly Unified Format) یک فرمت بهینه برای ذخیره و اجرای مدلهای زبان بزرگ (LLMs) است که برای عملکرد بهتر روی سختافزارهایی مثل GPU و CPU طراحی شده است. این فرمت با هدف کاهش حجم مدلها و افزایش سرعت پردازش ایجاد شده است.
GGUF
فرمت پیشرفتهای برای فشردهسازی و بهینهسازی مدلهاست که وزنها و پارامترهای مدل را به صورت با دقت کمتر (Quantized) (جای ۱.۶۸۶۴۴ ذخیره میکنه ۱ بر طور مثال)ذخیره میکند. این فرمت قابلیت اجرا روی انواع سختافزارها را دارد.
مزایای GGUF
1️⃣ فشردهسازی بالا: کاهش حجم مدلها با استفاده از کوانتایزیشن (مثلاً 4 یا 8 بیت بهجای 32 بیت).
2️⃣ سازگاری گسترده: پشتیبانی از سختافزارهای متنوع (GPU، CPU و غیره).
3️⃣ سرعت بالا: افزایش سرعت inference با کاهش محاسبات سنگین.
4⃣ یک فایل پورتابل یکپارچه که شامل تمام قسمتهای مدل
معایب GGUF
🔸 کاهش دقت مدل در صورت استفاده از کوانتایزیشن شدید (مثلاً 3 یا 4 بیت) که این مورد برای تسکهایی که دقت بالا نیاز دارن مناسب نیست
🔸 نیاز به ابزارهای خاص برای تبدیل مدلها به فرمت GGUF.
انواع کوانتایزیشن در GGUF شامل FP16 دقت ۱۶ بیتی(عددهایی که ۱۶ بیت فضا میگرن)، Q8 دقت ۸ بیتی، Q4 و ...
در نهایت میشه گفت فرمت GGUF یک گزینه ایدهآل برای کاهش حجم و بهینهسازی مدلهای هوش مصنوعی در فرآیند infrence و استفاده در لوکال هست.
فرمت GGUF (Grokking GPU-Friendly Unified Format) یک فرمت بهینه برای ذخیره و اجرای مدلهای زبان بزرگ (LLMs) است که برای عملکرد بهتر روی سختافزارهایی مثل GPU و CPU طراحی شده است. این فرمت با هدف کاهش حجم مدلها و افزایش سرعت پردازش ایجاد شده است.
GGUF
فرمت پیشرفتهای برای فشردهسازی و بهینهسازی مدلهاست که وزنها و پارامترهای مدل را به صورت با دقت کمتر (Quantized) (جای ۱.۶۸۶۴۴ ذخیره میکنه ۱ بر طور مثال)ذخیره میکند. این فرمت قابلیت اجرا روی انواع سختافزارها را دارد.
مزایای GGUF
1️⃣ فشردهسازی بالا: کاهش حجم مدلها با استفاده از کوانتایزیشن (مثلاً 4 یا 8 بیت بهجای 32 بیت).
2️⃣ سازگاری گسترده: پشتیبانی از سختافزارهای متنوع (GPU، CPU و غیره).
3️⃣ سرعت بالا: افزایش سرعت inference با کاهش محاسبات سنگین.
4⃣ یک فایل پورتابل یکپارچه که شامل تمام قسمتهای مدل
معایب GGUF
🔸 کاهش دقت مدل در صورت استفاده از کوانتایزیشن شدید (مثلاً 3 یا 4 بیت) که این مورد برای تسکهایی که دقت بالا نیاز دارن مناسب نیست
🔸 نیاز به ابزارهای خاص برای تبدیل مدلها به فرمت GGUF.
انواع کوانتایزیشن در GGUF شامل FP16 دقت ۱۶ بیتی(عددهایی که ۱۶ بیت فضا میگرن)، Q8 دقت ۸ بیتی، Q4 و ...
در نهایت میشه گفت فرمت GGUF یک گزینه ایدهآل برای کاهش حجم و بهینهسازی مدلهای هوش مصنوعی در فرآیند infrence و استفاده در لوکال هست.
👏1
The Debugging Diaries
Photo
🔑✨ مدیریت سادهتر SSH در لینوکس
یکی از روشهای راحتتر کردن فرآیند SSH (و حذف نیاز به تایپ مداوم IP و رمز) شامل استفاده از نام مستعار برای سرور و تنظیم کلیدهای SSH است.
🔹 1. ست کردن نام مستعار (Alias) برای IP
به جای استفاده از IP، یک نام مستعار تعریف کنید.
⚙️ روش انجام در لینوکس:
فایل /etc/hosts را باز کنید:
در انتهای فایل یک خط بهصورت زیر اضافه کنید:
✅ مثال:
از این به بعد میتوانید به جای IP، از myserver استفاده کنید.
مثلا:
⚡ کاربرد در ویندوز:
برای ویندوز نیز فایل hosts موجود است:
مسیر:
ساختار فایل مشابه لینوکس است و میتوانید نام مستعار را اضافه کنید.
🔹 2. حذف نیاز به رمز با SSH Keys
به جای تایپ مکرر رمز عبور، میتوانید از کلیدهای SSH استفاده کنید.
⚙️ روش تنظیم در لینوکس:
ساخت جفت کلید SSH:
(کلیدها در مسیر ~/.ssh ذخیره میشوند. بهصورت پیشفرض: id_rsa و id_rsa.pub.)
کپی کلید عمومی به سرور مقصد:
(کلید عمومی در سرور در فایل ~/.ssh/authorized_keys ذخیره میشود.)
اتصال به سرور:
اکنون میتوانید بدون نیاز به رمز متصل شوید:
⚡ تنظیم در ویندوز (با PowerShell):
ابزار SSH در ویندوز 10 به بعد بهصورت پیشفرض موجود است.
ساخت کلید SSH:
کپی کلید عمومی به سرور:
(یا کلید عمومی را دستی در فایل authorized_keys اضافه کنید.)
🎯 نتیجه نهایی:
با اضافه کردن نام مستعار و تنظیم SSH Key، میتوانید با یک دستور ساده مثل زیر به سرور متصل شوید:
🔒 این روش امنتر از وارد کردن پسورد است!
#Linux
#SSH
یکی از روشهای راحتتر کردن فرآیند SSH (و حذف نیاز به تایپ مداوم IP و رمز) شامل استفاده از نام مستعار برای سرور و تنظیم کلیدهای SSH است.
🔹 1. ست کردن نام مستعار (Alias) برای IP
به جای استفاده از IP، یک نام مستعار تعریف کنید.
⚙️ روش انجام در لینوکس:
فایل /etc/hosts را باز کنید:
sudo vim /etc/hosts
در انتهای فایل یک خط بهصورت زیر اضافه کنید:
<Server_IP> <Alias_Name>
✅ مثال:
192.168.1.100 myserver
از این به بعد میتوانید به جای IP، از myserver استفاده کنید.
مثلا:
ping myserver
ssh <username>@myserver
⚡ کاربرد در ویندوز:
برای ویندوز نیز فایل hosts موجود است:
مسیر:
C:\Windows\System32\drivers\etc\hosts
ساختار فایل مشابه لینوکس است و میتوانید نام مستعار را اضافه کنید.
🔹 2. حذف نیاز به رمز با SSH Keys
به جای تایپ مکرر رمز عبور، میتوانید از کلیدهای SSH استفاده کنید.
⚙️ روش تنظیم در لینوکس:
ساخت جفت کلید SSH:
ssh-keygen -t rsa
(کلیدها در مسیر ~/.ssh ذخیره میشوند. بهصورت پیشفرض: id_rsa و id_rsa.pub.)
کپی کلید عمومی به سرور مقصد:
ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<server>
(کلید عمومی در سرور در فایل ~/.ssh/authorized_keys ذخیره میشود.)
اتصال به سرور:
اکنون میتوانید بدون نیاز به رمز متصل شوید:
ssh <username>@myserver
⚡ تنظیم در ویندوز (با PowerShell):
ابزار SSH در ویندوز 10 به بعد بهصورت پیشفرض موجود است.
ساخت کلید SSH:
ssh-keygen
کپی کلید عمومی به سرور:
ssh-copy-id -i $env:USERPROFILE\.ssh\id_rsa.pub <username>@<server>
(یا کلید عمومی را دستی در فایل authorized_keys اضافه کنید.)
🎯 نتیجه نهایی:
با اضافه کردن نام مستعار و تنظیم SSH Key، میتوانید با یک دستور ساده مثل زیر به سرور متصل شوید:
ssh <username>@<aliasName> -p<port>
🔒 این روش امنتر از وارد کردن پسورد است!
#Linux
#SSH
🔥1
The Debugging Diaries
Photo
یکی از باحال ترین کارهایی که طریق ssh قابل انجام هست، ssh تونلها هستن.
اما ssh تونل چیکار میکنه؟
این ابزار یه پورت از کامپیوتر ریموت رو مپ میکنه به کامپیوتر خودتون (و البته برعکس مپ یه پورت از کامپیوتر لوکال به سرور )و صرفا اینکار از طریق همون دستور ssh انجام میده.
برای مثال شما یه kibana روی پورت 5601 روی سرور ریموت دارین و با ssh tunnel میتونین این پورت منتقل کنین به کامپیوتر لوکال و در localhost از سرویس kibana سرورتون استفاده کنین.
اما دستورش چی جوریه؟
مثال
در این دستور شما پورت 5601 سرور ریموت رو مپ کردین به پورت 8080 کامپیوترتون و اگه در مرورگر بزنین localhost:8080 در واقع سرویس ران شده در سرور رو می تونین مشاهده کنید.
برای مپ کردن لوکال به ریموت از دستور R- استفاده میشه.
حالا قضیه زمانی جالب تر میشه که نه تنها به سرویسهایی که در اون کامپیوتر ریموت هست میتونین متصل بشین بلکه تمام سرویس هایی که در سرورهای اون شبکه هستن رو می تونین ازش بهره ببرین
برای مثال اگه ای پی سروری که بهش ریموت زدین مثلا 24/ 192.168.1.2 باشه، شما به سرویس های سرور با آی پی 192.168.1.3 هم دسترسی خواهید داشت فقط کافیه به جای 127.0.0.1 در دستور بالا که به لوکال هاست اشاره داره آی پی اون کامپیوتر رو وارد کنید
الان شما عملا انگار به kibana دسترسی دارین که حتی به اون کامپیوتر ssh هم نزدین و نمیتونین بزنین.
یسری سوییچ کاربردی هم داره که به شکل زیر هست
اینجا سوییچ N- یعنی اینکه وارد سرور ریموت از طریق ssh نشو و فقط تونل رو ایجاد کن
و سوییچ f- هم این پراسس رو در بک گراند ایجاد و ران میکنه و ترمینال شما رو اشغال نمیکنه و با بستنش هم هم فعال میمونه(اگه خواستین قطعش کنین باید پراسس رو kill کنین با استفاده از پراسس آیدی)
در ویندوز و لینوکس قابل استفاده است و اینکه با D- هم میشه پروکسی از نوع SOCKS باهاش ایجاد کرد که خارج از بحث هستش.
#linux
اما ssh تونل چیکار میکنه؟
این ابزار یه پورت از کامپیوتر ریموت رو مپ میکنه به کامپیوتر خودتون (و البته برعکس مپ یه پورت از کامپیوتر لوکال به سرور )و صرفا اینکار از طریق همون دستور ssh انجام میده.
برای مثال شما یه kibana روی پورت 5601 روی سرور ریموت دارین و با ssh tunnel میتونین این پورت منتقل کنین به کامپیوتر لوکال و در localhost از سرویس kibana سرورتون استفاده کنین.
اما دستورش چی جوریه؟
ssh -L <local_port>:<remote_host>:<remote_port> <user>@<ssh_server>
مثال
ssh -L 8080:127.0.0.1:5601 [email protected]
در این دستور شما پورت 5601 سرور ریموت رو مپ کردین به پورت 8080 کامپیوترتون و اگه در مرورگر بزنین localhost:8080 در واقع سرویس ران شده در سرور رو می تونین مشاهده کنید.
برای مپ کردن لوکال به ریموت از دستور R- استفاده میشه.
حالا قضیه زمانی جالب تر میشه که نه تنها به سرویسهایی که در اون کامپیوتر ریموت هست میتونین متصل بشین بلکه تمام سرویس هایی که در سرورهای اون شبکه هستن رو می تونین ازش بهره ببرین
برای مثال اگه ای پی سروری که بهش ریموت زدین مثلا 24/ 192.168.1.2 باشه، شما به سرویس های سرور با آی پی 192.168.1.3 هم دسترسی خواهید داشت فقط کافیه به جای 127.0.0.1 در دستور بالا که به لوکال هاست اشاره داره آی پی اون کامپیوتر رو وارد کنید
ssh -L 8080:192.168.1.3:5601 [email protected]
الان شما عملا انگار به kibana دسترسی دارین که حتی به اون کامپیوتر ssh هم نزدین و نمیتونین بزنین.
یسری سوییچ کاربردی هم داره که به شکل زیر هست
ssh -L 8080:localhost:5601 -N -f [email protected]
اینجا سوییچ N- یعنی اینکه وارد سرور ریموت از طریق ssh نشو و فقط تونل رو ایجاد کن
و سوییچ f- هم این پراسس رو در بک گراند ایجاد و ران میکنه و ترمینال شما رو اشغال نمیکنه و با بستنش هم هم فعال میمونه(اگه خواستین قطعش کنین باید پراسس رو kill کنین با استفاده از پراسس آیدی)
در ویندوز و لینوکس قابل استفاده است و اینکه با D- هم میشه پروکسی از نوع SOCKS باهاش ایجاد کرد که خارج از بحث هستش.
#linux
👍1