An open API service indexing awesome lists of open source software.

https://github.com/arian24b/sshin

A command-line tool for managing multiple SSH sessions with session logging and security helpers.
https://github.com/arian24b/sshin

bash devops-tools security shell-script ssh ssh-client sysadmin

Last synced: 2 months ago
JSON representation

A command-line tool for managing multiple SSH sessions with session logging and security helpers.

Awesome Lists containing this project

README

          

# sshin - مدیر جلسات SSH

**sshin** یک ابزار خط فرمان است که برای ساده‌سازی و بهینه‌سازی فرآیند اتصال و مدیریت چندین سرور ریموت از طریق SSH طراحی شده است. این ابزار از نام‌های مستعار (alias) برای اتصال به سرورهای از پیش تعریف‌شده استفاده می‌کند و به طور خودکار جلسات شما را برای بازبینی و حسابرسی لاگ می‌کند.

[English](README.md) | فارسی

## قابلیت‌ها

- **اتصالات مبتنی بر نام مستعار (Alias):** به جای استفاده از آدرس‌های طولانی یا IP، با نام‌های کوتاه و به‌یادماندنی به سرورهای خود متصل شوید.
- **پیکربندی متمرکز:** تمام اتصالات سرور خود را از طریق یک فایل پیکربندی واحد و خوانا مدیریت کنید.
- **ثبت خودکار گزارش جلسات (Session Logging):** به طور خودکار گزارش هر جلسه را در یک دایرکتوری محلی ذخیره می‌کند که برای حسابرسی یا بازبینی‌های بعدی عالی است.
- **پنهان‌سازی کد منبع:** کلاینت اصلی به صورت یک فایل باینری توزیع می‌شود تا از بررسی ساده کد منبع جلوگیری شود.
- **انتشار خودکار نسخه‌ها (Releases):** با GitHub Actions یکپارچه شده تا نسخه‌های جدید را به طور خودکار بیلد و منتشر کند.
- **اسکریپت‌های کمکی:** شامل ابزارهای کمکی برای ساخت کلید در سمت کلاینت، راه‌اندازی سرور و امن‌سازی اختیاری SSH است.

## فایل‌های پروژه

این ابزار شامل چهار اسکریپت اصلی است که شما در ریپازیتوری خود مدیریت خواهید کرد:

1. **`sshin`**: کد منبع اسکریپت اصلی کلاینت. این فایل در فرآیند انتشار به یک فایل باینری تبدیل می‌شود.
2. **`sshin-setup`**: یک ابزار کمکی برای اجرا روی کامپیوتر کلاینت جهت ساخت کلیدهای SSH لازم.
3. **`sshin-server-setup.sh`**: یک اسکریپت کمکی برای اجرا روی سرور ریموت جهت آماده‌سازی امن آن برای مدیریت توسط `sshin`.
4. **`sshin-harden-ssh.sh`**: یک اسکریپت اختیاری برای اعمال تنظیمات امنیتی پیشنهادی به پیکربندی SSH سرور.

## نصب و راه‌اندازی

### مرحله ۱: پیکربندی کامپیوتر شما (کلاینت)

ابتدا ابزار `sshin` را روی کامپیوتر محلی خود راه‌اندازی کنید.

1. **دانلود آخرین نسخه:** به صفحه "Releases" ریپازیتوری در گیت‌هاب بروید و آخرین نسخه باینری `sshin` و اسکریپت `sshin-setup` را دانلود کنید.
2. **قرار دادن فایل‌ها در `PATH` سیستم:**
فایل‌های دانلود شده را به یکی از دایرکتوری‌های موجود در `PATH` سیستم خود منتقل کنید، مانند `/usr/local/bin/`.
```bash
sudo mv ./sshin /usr/local/bin/sshin
sudo mv ./sshin-setup /usr/local/bin/sshin-setup
sudo chmod +x /usr/local/bin/sshin /usr/local/bin/sshin-setup
```

3. **ساخت کلیدهای SSH:**
اسکریپت کمکی را اجرا کنید تا کلیدهای SSH مورد نیاز برای اتصال به سرورها ساخته شوند.
```bash
sshin-setup
```
این دستور کلیدهایی مانند `~/.ssh/management_key` ایجاد می‌کند. مسیر فایل کلید عمومی (`.pub`) را به خاطر بسپارید، زیرا برای راه‌اندازی سرور به آن نیاز خواهید داشت.

4. **ایجاد فایل پیکربندی:**
`sshin` از یک فایل مرکزی برای مدیریت لیست سرورهای شما استفاده می‌کند.
```bash
mkdir -p ~/.config/sshin
touch ~/.config/sshin/servers.conf
```
سرورهای خود را با فرمت `alias:user@hostname:port:key_path` به این فایل اضافه کنید.

**مثال برای `~/.config/sshin/servers.conf`:**
```ini
prod-web-1:sysadmin@192.0.2.10:22:~/.ssh/management_key
```

### مرحله ۲: پیکربندی سرور ریموت

اسکریپت `sshin-server-setup.sh` (که از صفحه ریلیز دانلود کرده‌اید) را روی هر سرور ریموت اجرا کنید.

```bash
# روی سرور ریموت:
sudo chmod +x sshin-server-setup.sh
sudo ./sshin-server-setup.sh
```

این اسکریپت شما را در فرآیند ساخت یک کاربر جدید و نصب کلید عمومی SSH آن راهنمایی می‌کند.

### مرحله ۳ (اختیاری): امن‌سازی پیکربندی SSH سرور

برای افزایش امنیت، می‌توانید از اسکریپت `sshin-harden-ssh.sh` روی سرور ریموت خود استفاده کنید. این اسکریپت ورود با رمز عبور و ورود مستقیم کاربر ریشه (root) از طریق SSH را غیرفعال می‌کند.

**هشدار**: این یک عملیات بالقوه مخرب است. اسکریپت یک نسخه پشتیبان از پیکربندی SSH شما ایجاد می‌کند، اما باید با احتیاط از آن استفاده کنید.

1. فایل `sshin-harden-ssh.sh` را از صفحه ریلیز گیت‌هاب روی سرور خود دانلود کنید.
2. آن را با `sudo` اجرا کنید:
```bash
# روی سرور ریموت:
sudo chmod +x sshin-harden-ssh.sh
sudo ./sshin-harden-ssh.sh
```

این اسکریپت قبل از اعمال هرگونه تغییر، از شما تاییدیه خواهد گرفت.

## نحوه استفاده

با اجرای `sshin` به همراه نام مستعار تعریف‌شده، به هر سرور متصل شوید.

```bash
# اتصال به سرور با نام مستعار 'prod-web-1'
sshin prod-web-1
```

## مشارکت در پروژه (Contributing)

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

اگر پیشنهادی برای بهتر شدن این پروژه دارید، لطفاً ریپازیتوری را fork کرده و یک pull request ایجاد کنید. همچنین می‌توانید یک issue با تگ "enhancement" باز کنید.

فراموش نکنید که به پروژه ستاره بدهید\! با تشکر\!

1. **پروژه را Fork کنید**
2. **یک شاخه (Branch) برای قابلیت جدید خود بسازید**
```sh
git checkout -b feature/AmazingFeature
```
3. **تغییرات خود را Commit کنید**
```sh
git commit -m 'Add some AmazingFeature'
```
4. **تغییرات را به شاخه Push کنید**
```sh
git push origin feature/AmazingFeature
```
5. **یک Pull Request باز کنید**

## مجوز (License)

این پروژه تحت مجوز MIT منتشر شده است. برای جزئیات کامل، فایل [LICENSE](https://www.google.com/search?q=LICENSE) را مشاهده کنید.