
Debian/UbuntuでのSSHを一度にロックダウン:新しいポート、rootログイン禁止、鍵ベースの認証、オプションのUFWとFail2Ban。
スクリプトを実行すると、OSを検出し、設定を表示してから続行するかどうかを尋ねます:

Debian/Ubuntuの場合:
sudo apt-get install -y git
rm -rf ssh-hardening
git clone https://github.com/spookey007/ssh-hardening.git
cd ssh-hardening
最新のスクリプトが必要なときはいつでもこれを実行してください。
chmod +x ssh_harden.sh script.sh
これをスキップすると、./ssh_harden.shを実行したときに**"command not found"** が発生する可能性があります。その場合は、代わりにステップ5のsudo bash ssh_harden.shを使用してください。
SSH_PUB_KEYとして貼り付けるため)Linux / macOS
ssh-keygen -t ed25519 -C "[email protected]"
デフォルトのパス(~/.ssh/id_ed25519)の場合はEnterキーを押します。オプション:パスフレーズを設定します。
公開鍵を表示します(これをSSH_PUB_KEYにコピー):
cat ~/.ssh/id_ed25519.pub
Windows(PowerShellまたはGit Bash)
ssh-keygen -t ed25519 -C "[email protected]"
デフォルトのパスの場合はEnterキーを押します。オプション:パスフレーズを設定します。
公開鍵を表示:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubtype %USERPROFILE%\.ssh\id_ed25519.pub行全体(ssh-ed25519 ...で始まる)をコピーします。それがあなたのSSH_PUB_KEYです。
値を自分のものに置き換えてから実行:
sudo SSH_USER=kamaileo \
SSH_PASS='YourStrongPassword123!' \
SSH_PORT=49221 \
PORTS="5060,5061,10000-20000" \
SSH_PUB_KEY="ssh-ed25519 AAAA... you@yourmachine" \
./ssh_harden.sh
"command not found" が発生した場合は、次を使用:
sudo bash ssh_harden.sh
(前と同じSSH_USER=... SSH_PASS=...などを付けて)。
新しいターミナルで、新しいポート(22ではない)を使用して接続:
ssh -p 49221 kamaileo@YOUR_SERVER_IP
設定したポートとユーザーを使用します。ログインとsudoが機能することを確認した後にのみ、元のセッションを閉じてください。
毎回新しいポートを使用してください。 強化後、SSHはポート22を使用しなくなります。常に次のように接続:
ssh -p <YOUR_PORT> <USER>@<SERVER_IP>
例:ssh -p 49221 [email protected]
スクリプトが終了したら出力を保存してください。 スクリプトの最後に、ユーザー、ポート、接続コマンド、パスワードが設定されたかどうかのサマリーが表示されます。そのブロックをコピーまたはスクリーンショットして安全な場所に保管してください。SSHキーを紛失したり、ポートを忘れたり、パスワードを忘れた場合、その記録が復旧や再接続(例:同じユーザーとパスワードを使用してコンソール/VNC経由)の助けになります。
スクリプトは必要なすべてを出力します:ユーザー、ポート、UFW/Fail2Banのステータス、正確なssh -p ...コマンド。推測は不要です。
SSH_USERがサーバー上に既に存在する場合、スクリプトは新しいユーザーを作成せず、パスワードも変更しません。以下のみを行います:
sudoグループに属していることを確認SSH_PUB_KEYを渡した場合は~/.ssh/authorized_keysを更新そのため、既存のパスワードに触れることなく「強化のみ」のために再度実行できます。
サポートされていないOSでは、スクリプトはComing soon 😊と表示して、何も変更せずに終了します。
SSH_PUB_KEY**を設定してください。ssh -p PORT user@serverをテストするまで、現在のセッションを開いたままにしてください。このスクリプトがあなたの時間や手間を省いたなら、一回限りのチップでプロジェクトを支援できます。
BTC: 3L1Gc4avD4Bqoi2F9aq6z4heT13fXA8DZ9
どちらにせよありがとう。
| 変数 | 例 | 機能 |
|---|
SSH_USER | kamaileo | ユーザー名(存在しない場合は作成;存在する場合はパスワードは変更されません)。 |
SSH_PASS | 'YourPass123!' | 新規ユーザー専用のパスワード。強力なものを使ってください。 |
SSH_PORT | 49221 | SSHポート。次のように使用:ssh -p 49221 user@server。 |
PORTS | "5060,5061,10000-20000" | UFW用の追加ポート(オプション)。 |
SSH_PUB_KEY | "ssh-ed25519 AAAA..." | あなたの公開鍵。ロックアウトされないように強く推奨。 |
| OS | サポート | テスト済み | Gitのインストール方法 |
|---|
| Debian 12 x64 | ✅ | ✅ | sudo apt-get install -y git |
| Debian 11/10, Ubuntu 24/22/20 | ✅ | ❌ | sudo apt-get install -y git |
| RHEL / Rocky / Alma / CentOS | ❌ | ❌ | sudo yum install -y git |
| Fedora | ❌ | ❌ | sudo dnf install -y git |
| Arch | ❌ | ❌ | sudo pacman -Syu git |
| openSUSE | ❌ | ❌ | sudo zypper install -y git |