Create EnablePubkey.sh

开启ssh免密登录
This commit is contained in:
Lsmoisu 2025-04-24 14:11:44 +08:00 committed by GitHub
parent 2bd9b24a4f
commit 75a3629cb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

70
EnablePubkey.sh Normal file
View File

@ -0,0 +1,70 @@
#!/bin/bash
# 检查是否以root用户运行
if [ "$EUID" -ne 0 ]; then
echo "此脚本需要以root权限运行请使用sudo或切换到root用户"
exit 1
fi
# 定义SSH配置文件路径
SSHD_CONFIG="/etc/ssh/sshd_config"
# 检查配置文件是否存在
if [ ! -f "$SSHD_CONFIG" ]; then
echo "SSH配置文件 $SSHD_CONFIG 不存在,请检查系统环境"
exit 1
fi
# 备份当前的SSH配置文件
echo "备份当前SSH配置文件到/etc/ssh/sshd_config.bak"
cp "$SSHD_CONFIG" "$SSHD_CONFIG.bak"
# 函数:检查并更新配置参数
update_config_param() {
local param="$1"
local value="$2"
if grep -q "^[[:space:]]*${param}[[:space:]]" "$SSHD_CONFIG"; then
echo "找到参数 $param,正在更新其值为 $value"
sed -i "s/^[[:space:]]*${param}[[:space:]].*/${param} ${value}/" "$SSHD_CONFIG"
else
echo "未找到参数 $param,正在添加 ${param} ${value}"
echo "${param} ${value}" >> "$SSHD_CONFIG"
fi
}
# 更新SSH配置参数
echo "更新SSH配置文件..."
update_config_param "PasswordAuthentication" "yes"
update_config_param "RSAAuthentication" "yes"
update_config_param "PubkeyAuthentication" "yes"
update_config_param "PermitRootLogin" "yes"
update_config_param "ChallengeResponseAuthentication" "yes"
update_config_param "UsePAM" "yes"
# 检查配置文件语法
echo "检查SSH配置文件语法..."
if command -v sshd >/dev/null 2>&1; then
sshd -t
if [ $? -ne 0 ]; then
echo "SSH配置文件语法错误请检查恢复备份文件..."
cp "$SSHD_CONFIG.bak" "$SSHD_CONFIG"
exit 1
fi
else
echo "警告未找到sshd无法检查配置文件语法"
fi
# 重启SSH服务以应用更改
echo "重启SSH服务..."
if systemctl is-active --quiet sshd; then
systemctl restart sshd
echo "SSH服务已重启"
elif systemctl is-active --quiet ssh; then
systemctl restart ssh
echo "SSH服务已重启"
else
echo "未找到SSH服务请手动重启"
fi
echo "SSH相关配置已更新"
echo "请确保已设置好公钥认证或密码认证以便登录。"