Featured image of post ابزار‌های مدیریت کانکشن ssh

ابزار‌های مدیریت کانکشن ssh

بعوان دواپس، هر روز سرور های زیادی هست که داخلشون باید ssh کنم و کار های مختلفی روشون انجام بدم مثل خوندن لاگ، تغییر کانفیگ و…

من معمولا IP سرور‌هایی که بیشتر باهاشون کار دارم رو حفظم. اما بقدری تعداد سرور‌ها زیاد میشن که من جزئیات کانکشن رو فراموش می‌کنم. مثلا اینکه یوزر لاگین چی بود! اصلا IP اش چی بود!

  • ابزار های زیادی برای مدیریت سرور‌های ssh وجود داره، مثلا شاید Xpipe رو دیده باشین، یک محیط GUI بهتون میده، و کلی قابلیت. مثل سینک کردن کانکشن‌هاتون (با استفاده از Git)، دسترسی به shell داخل کانتیر، اتصال به cloud provider های مختلف مثل aws و…

xpipe


  • یکی از ابزار‌های دیگه termius هست، می‌تونیم کانکشن‌هامون رو با بقیه از طریق email اشتراک بگذاریم، و هرجایی که داخل اکانتمون لاگین کنیم به کل کانکشن‌هامون دسترسی داریم. ولی خب اینکه به یک شرکت دیگه اعتماد کنی تا IP و پسورد همه‌ی سرور‌هات رو داشته باشه شاید یکم ریسک باشه (شاید دیتابیسشون لیک شد!)

این رو هم بگم که termius ادعا می‌کنه از رمزنگاری end-to-end استفاده می‌کنه. اما آیا کار‌هایی که ما می‌کنیم رو لاگ می‌کنه؟ ممکنه اونا لیک بشن یا جایی بفروش برسه!؟ اگه کلاینت Open source بود، شاید بیشتر می‌شد بهش اعتماد کرد.

termius


  • من شخصا ابزار‌های ترمینالی رو ترجیح می‌دم، خیلی سریع و راحت‌ترم باهاشون. ابزار sshs رو مدت زیادی هست که استفاده می‌کنم. کانفیگ ssh که توی مسیر ~/.ssh/ssh_config قرار داره رو می‌خونه و همه‌ی سرورهاتون رو لیست می‌کنه.

sshs

برای این ابزار من best practice خاص خودم رو دارم.

برای مثال هر سروری که برای پروداکشن باشه، اسمش رو با prod. شروع می‌کنم.

سرور‌هایی که برای دولوپمنت هستند با dev. و سندباکس رو با sandbox. شوع می‌کنم.

از طرفی با کامنت گذاشتن داخل فایل کانفیگ بخش‌های مختلف رو از هم جدا می‌کنم. مثلا یک بخش برای پروداکشن هست و همه‌ی کانکشن‌های پروداکشن زیر اون قرار دارند و به همین ترتیب برای بقیه‌ی بخش‌ها.

یک نمونه‌ی خیلی ساده

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# --- Production Servers ---

Host prod.psql.01
 HostName 192.168.10.20
 User arya

Host prod.mysql.02
 HostName 192.168.100.20
 User arya


# --- Develop Servers ---

Host dev.redis.01
 HostName 192.168.10.21
 User arya

Host dev.runner.01
 HostName 192.168.100.99
 User arya

### --- Sandbox Servers ---

برای من و شمایی که داخل ترمینال زندگی می‌کنیم ترکیب کانفیگ ssh_config با پلاگین ssh داخل oh-my-zsh قابلیت های sftp و scp رو برای شما راحت‌تر می‌کنه. چونکه با یک تب آدرس و مسیر سرور وارد ترمینال شما میشه.

sshs

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

1
ssh-copy-id prod.psql.01
Licensed under CC BY-NC-SA 4.0
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy