Create EnablePubkey.sh
开启ssh免密登录
This commit is contained in:
parent
2bd9b24a4f
commit
75a3629cb5
70
EnablePubkey.sh
Normal file
70
EnablePubkey.sh
Normal 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 "请确保已设置好公钥认证或密码认证以便登录。"
|
Loading…
x
Reference in New Issue
Block a user