شاید تا الان شده باشه که بخواین به یه سرور وصل بشید ولی مستقیم بهش راه نداشته باشید. یعنی سرور تو شبکه داخلیه و فقط از یه ماشین واسط (bastion یا jump host) میشه بهش رسید.
اکثرمون اول ssh میزنیم به ماشین واسط، بعد از اونجا دوباره ssh میزنیم به مقصد. کار میکنه ولی کلید باید یه جوری روی ماشین واسط باشه و scp کردن فایل هم میشه یه عذاب دو مرحلهای :)))
راه درست پرچم -J هست:
ssh -J user@bastion user@target
با این دستور، ssh اول به bastion وصل میشه و از توی همون اتصال یه تونل به مقصد باز میکنه. مستقیم میای روی مقصد. کلید خصوصیات هم رو سیستم خودت میمونه و هیچوقت روی bastion کپی نمیشه، چون احراز هویت مقصد از طرف سیستم خودت انجام میشه. پس به agent forwarding هم نیازی نیست که ریسک امنیتی خودش رو داره.
چند تا jump پشت سر هم داری؟ با کاما جدا کن:
ssh -J user@hop1,user@hop2 user@target
پورت غیر استاندارد:
ssh -J user@bastion:2222 user@target
دستورات scp و rsync هم همین رو میفهمن:
scp -J user@bastion file.txt user@target:/tmp/
rsync -e "ssh -J user@bastion" -av ./dir user@target:/srv/
اگه از تایپ کردنش خسته شدی، تو ~/.ssh/config بذارش:
Host target
HostName 10.0.0.15
User sohrab
ProxyJump bastion
از این به بعد فقط ssh target میزنی. -J در واقع میانبر همین ProxyJump هست و از OpenSSH نسخه 7.3 به بعد وجود داره، پس تقریباً همهجا جواب میده.
پ.ن: قبل از اینها باید با ProxyCommand و nc سر و کله میزدیم و نصف عمرمون صرف دعوا با کوتیشنها میشد :)))
به عیعای گفتم فلان فیچر ساده رو ایمپلمنت کن. کرد و گفتم تست کردی؟ گفت آره. تنبلی کردم گفتم بهش اعتماد کنم و بدون تست پوش کردم. بعد دیدم یکسری ارور می ده رو سرور. به عیعای می گم من این ارورها رو می بینم! مگه نگفتی تست کردی؟ چی جواب بده خوبه؟ گفت: آره اتفاقا منم که تست کردم همین ارورها رو می داد (:
اوایل سال میلادی جاری هسته لینوکس، قانونی رو اضافه کرد که استفاده از ابزارهای هوش مصنوعی هنگام ارسال کد به هسته لینوکس باید ذکر میشد. در اون موقع مدلها اونقدر قوی نبودن و چنین قانونی توجیه داشت ولی حالا مسئولان نگهداری هسته لینوکس، تصمیم گرفتن این قانون رو حذف کنن چون هم مدلها خیلی قویتر شدن و کدهای خوبی تولید میکنن و هم ذکر ابزار دیگه ارزش خاصی نداره.
یکی از مخالفان سرسخت هوش مصنوعی یعنی Laurent Pinchart ولی مخالف حذف این قانون هست و گفته نه تنها این قانون باید حفظ بشه بلکه گسترش پیدا کنه و سخت گیری بیشتری روی اجرای اون اعمال بشه تا مسئولان نگهداری هسته لینوکس براساس اون بتونن قضاوت کنن کدوم کدها ارزش بررسی و قرار گرفتن در هسته لینوکس رو داره.
طبیعتا لینوس توروالدز، سازنده و مسئول اصلی نگهداری هسته لینوکس، از چنین دیدگاهی خوشش نیومده و در پیامی، سخت این فرد توپیده و به اون گفته:
من اصلا این ایده احمقانه «برای فلان کار از هوش مصنوعی استفاده نکنید» را نمی فهمم.
بگذار یک قانون جدید مخصوص خودت وضع کنم: از این به بعد حق نداری برای هیچ کدام از کدهایی که به کرنل ارسال می کنی، از کامپایلر استفاده کنی.
چون اگر نتونی با نوشتن کد خودت به زبان اسمبلی نشون بدی که واقعا می فهمی ماشین در عمل داره چیکار میکنه، من هم نمیخوام هیچ مشارکتی در کدنویسی از طرف تو ببینم. واضحه که اگر نتونی کدت را به این شکل بنویسی، صلاحیت لازم رو نداری. راستی، بهتر است برای نوشتن پیام کامیتت هم از هیچ ویرایشگر متنی استفاده نکنی.
چون باید به من ثابت کنی که واقعا میتونی یک پیام کامیت خوب بدون استفاده از ابزارهایی که به تو اجازه می دن به راحتی با کلید Backspace اشتباهات تایپی ات را پاک کنی و ردشون رو از بین ببری، بنویسی، قبوله؟
چون در غیر این صورت، کامیت هایی که با کمک این ابزارها مینویسی، مسلما نشان نمیدن که واقعا میدونی داری چیکار می کنی. واقعا نمی فهمی چنین قوانینی چقدر احمقانه و مضحک هستن؟
پس نه! ما قرار نیست قوانین احمقانه ای وضع کنیم که بگن «برای فلان کار حق نداری از فلان ابزار استفاده کنی».
انتظاری که من از ادمها دارم اینه که تمام تلاششون رو بکنن و واقعا بفهمن که دارن چه کار می کنن. اما این فهم و درک، ارتباط بسیار کمی با ابزارهایی که از اونها استفاده می کنن داره.
و راستش رو بخوای طبق تجربه من، ادمهایی که براشون احترام قائلم و اونهارو باهوش میدونم، کسانی نیستن که از استفاده از ابزارهای جدید و جالب فرار کنن.
🔎 theregister
🚀 دولوپرها، نمونهکارتون رو زنده نشون بدید و دلاری درآمد داشته باشید
UpFork
یه مارکتپلیس بینالمللیه برای کامپوننت، لندینگپیج، پروژهی فولاستک، موبایل، نرمافزار دسکتاپ و اسکیل.
چرا UpFork ؟
🧾 رزومهای که قابل اثباته
یه صفحهی عمومی میگیرید با مهارتها و محصولاتتون، همراه آمار واقعی بازدید و نصب. همین صفحه به یه رزومهی PDF با شماره و QR تبدیل میشه که هر کارفرمایی میتونه اصالتش رو توی سایت چک کنه. دیگه لازم نیست بگید «فلان کار رو کردم»؛ نشونش میدید.
🖥 نمونهکار زنده، بدون سرور و هاست
کامپوننتهای React/Tailwind و لندینگها مستقیم روی سایت اجرا میشن: دارک و لایت، موبایل و دسکتاپ، با کد کنارش. هیچ هزینهای هم نداره.
💰 درآمد دلاری، مستقیم به کیف پول خودتون
پرداخت با USDT (TRC-20) انجام میشه و مستقیم به ولت خودتون واریز میشه. نه PayPal لازمه، نه حداقل برداشت، نه انتظار برای تسویه. سهم UpFork از فروش 20% است.
🌍 بازار جهانی
محصولتون جلوی خریدار خارجی قرار میگیره. میتونید رایگان بذارید و اسمورسم بسازید، یا بفروشید و درآمد داشته باشید.
⚙️ ابزار حرفهای
فولدر پروژه رو drag کنید تا خودکار خونده بشه، پیشنمایش بسازه و با shadcn CLI تست نصب بشه. ریویوها فقط از خریدارهای واقعیه و پیگیری باگ و نسخهها هم توی پنل هست.
یه ابزار اوپنسورسی به اسم Harper هست که بهتون کمک میکنه اشتباهات گرامریتون رو اصلاح کنید.
خوبیش اینه که روی سیستم خودتون بهصورت آفلاین کار میکنه و نیاز نیست مثل Grammarly حتماً به اینترنت وصل بشید یا نگران ارسال دیتاتون به سرورهای خارجی باشید.
ازش میتونید داخل Neovim، VS Code و Obsidian استفاده کنید یا با ابزار CLI توی ترمینال انواع فایلها، READMEها و... رو چک کنید. برعکس ابزارهای عمومی، برای برنامهنویسها بهینهسازی شده؛ متغیرهای کدهای برنامهنویسی رو به عنوان غلط املایی نمیشناسه و تمرکزش روی متن داکیومنتها، کامنتها و پیامهای کامیته.
یه قابلیت کاربردی دیگه هم دیکشنری شخصیشه؛ اگه به اصطلاحات فنی خاص یا اسم پروژههاتون گیر داد، خیلی راحت میتونید اون کلمه رو به فایل دیکشنریش اضافه کنید تا دیگه به عنوان غلط املایی نشناستش
هرچند باید حواستون باشه دقت خیلی بالایی هم نداره و اگه به تصویر دقت کنید یه سری از غلطها رو متوجه نشده
📹 پشتیبانی از لینکهای اینستاگرام و توییتر
📚 ترجمهی خودکار به ۱۳ زبان
📁 پشتیبانی از فایلهای SRT و ASS، برای ترجمه و یا اصلاح اشتباهات
📝 اصلاح زیرنویس فقط با یه پیام ساده
👨🎨 استایلهای مختلف