document/文档/linux/脚本/setup_ssh.sh
2025-05-18 15:14:53 +08:00

42 lines
1.4 KiB
Bash

#!/bin/bash
# 1. 安装 OpenSSH 服务器(如果未安装)
echo "正在安装 OpenSSH 服务器..."
sudo apt update
sudo apt install -y openssh-server
# 2. 启用 SSH 服务并设置开机自启
echo "正在启用 SSH 服务..."
sudo systemctl enable ssh
sudo systemctl start ssh
# 3. 创建 SSH 密钥对(如果不存在)
echo "正在创建 SSH 密钥对..."
if [ ! -f ~/.ssh/id_rsa ]; then
if [ -z "$1" ]; then
# 不传入参数时,不使用 -C 选项
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -q
echo "SSH 密钥对已创建(无注释)。"
else
# 传入参数时,使用 -C 选项
KEY_COMMENT="$1"
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -C "$KEY_COMMENT" -q
echo "SSH 密钥对已创建,注释为:$KEY_COMMENT"
fi
else
echo "SSH 密钥对已存在,跳过创建。"
fi
# 4. 设置 SSH 配置文件以允许密码登录和密钥登录
echo "正在配置 SSH 服务..."
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
sudo sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
# 5. 重启 SSH 服务以应用更改
sudo systemctl restart ssh
# 6. 显示公钥内容
echo "SSH 公钥内容如下:"
cat ~/.ssh/id_rsa.pub
echo "SSH 登录已开启,密钥对已创建并配置完成。"