42 lines
1.4 KiB
Bash
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 登录已开启,密钥对已创建并配置完成。" |