#!/bin/bash # 检查是否提供了公钥参数 if [ -z "$1" ]; then echo "Usage: $0 " exit 1 fi # 公钥变量 SSH_KEY="$1" # 创建 .ssh 目录并设置权限 mkdir -p ~/.ssh chmod 700 ~/.ssh # 将公钥添加到 authorized_keys 文件 echo "$SSH_KEY" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys # 检查并配置sshd_config文件 # SSHD_CONFIG="/etc/ssh/sshd_config" # if grep -q "^#PasswordAuthentication" $SSHD_CONFIG; then # sudo sed -i 's/^#PasswordAuthentication.*/PasswordAuthentication no/' $SSHD_CONFIG # elif grep -q "^PasswordAuthentication" $SSHD_CONFIG; then # sudo sed -i 's/^PasswordAuthentication.*/PasswordAuthentication no/' $SSHD_CONFIG # else # echo "PasswordAuthentication no" | sudo tee -a $SSHD_CONFIG # fi # if grep -q "^#PermitRootLogin" $SSHD_CONFIG; then # sudo sed -i 's/^#PermitRootLogin.*/PermitRootLogin prohibit-password/' $SSHD_CONFIG # elif grep -q "^PermitRootLogin" $SSHD_CONFIG; then # sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin prohibit-password/' $SSHD_CONFIG # else # echo "PermitRootLogin prohibit-password" | sudo tee -a $SSHD_CONFIG # fi # 重启ssh服务以应用更改 sudo systemctl restart sshd echo "SSH key added and password login disabled."