ssh密钥登录认证自动配置脚本

#!/bin/bash
# ssh密钥登录认证脚本
# 需要提供公钥
# ex: ./authorized.sh username 
username=$1
flag=""

function f_user_permission
{
    useradd $username
    mkdir /home/$username/.ssh
    touch /home/$username/.ssh/authorized_keys
    read -p "please input your public key:" public_key
    echo $public_key >> /home/$username/.ssh/authorized_keys
    chmod 600 /home/$username/.ssh/authorized_keys
    cd /home
    chown -R $username:$username ./$username
    sed -i "s/AllowUsers.*/& $username/g" /etc/ssh/sshd_config
    /etc/init.d/sshd reload
}

function f_user_add
{
    if [ "$1" == 2 ]
    then
        echo "f_user_permission 2"
        f_user_permission
        flag="0"        
    elif [ "$1" == 1 ]
    then
        echo "f_user_permission 1"
        echo "back up the original user dir: ${username} to ${username}_bak"
        mv $username ${username}_bak
        f_user_permission
        flag="0"
    else
        echo "f_user_add parm error"
        flag="1"
    fi
}



if [ -z "$username" ]
then
    echo -e "\033[31m please execute the shell like this:\n\" ./authorized.sh liyg\" to add the user \"liyg\"\033[0m"
    echo "no user name input,nothing to do,exit"
else
    echo "check user"
    user_check=`cat /etc/passwd |grep "$username"`
    if [ -z "$user_check" ]
    then
        echo "start"
        user_dir_check="/home/$username"
        if [ -d "$user_dir_check" ]
        then
            echo "1"
            f_user_add 1
        else
            echo "2"
            f_user_add 2
        fi
    else
        echo "user $username exists ,please check out, stopping add user"
        flag="1"
    fi
fi


if [ "$flag" == "0" ]
then
    echo "${username}'s permission already opened"
elif [ "$flag" == "1" ]
then
    echo "${username}'s permission denied"
else
    echo "parameter error"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值