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.
- Host: GitHub
- URL: https://github.com/arian24b/sshin
- Owner: arian24b
- License: mit
- Created: 2025-06-26T13:34:43.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-27T12:36:32.000Z (about 1 year ago)
- Last Synced: 2026-04-29T06:37:46.548Z (2 months ago)
- Topics: bash, devops-tools, security, shell-script, ssh, ssh-client, sysadmin
- Language: Shell
- Homepage: https://s2dio.ir/projects/sshin
- Size: 14.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.fa.md
- License: LICENSE
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) را مشاهده کنید.