设置服务器公钥登陆sh脚本

#!/bin/bash 
# desc: 此脚本用来创建用户,并设置成公钥登陆.
# author:[email protected]
# date: 2015-06-18

# 设置环境变量
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
export PATH

#输入需要创建的用户名
read -p "Input the user name:" username

#确认是否上传相应的文件
read -p "Do you upload user public key file(e.g. xumin.pub) to home directory before excute this script? (y or n):" fileflag

if [ "$fileflag" != "Y" ] && [ "$fileflag" != "y" ]; then 
    echo "please upload user public key file(e.g. xumin.pub) to home directory.\n" 
    exit 2 
fi

echo "start setting....... \n"

#检查公钥文件是否已经上传
filepath=~/$username.pub

if [ -f $filepath ];then
    echo "$filepath 文件存在!"
else
    echo "$filepath 文件不存在或者您输入的路径有误"
    exit 3
fi

#新增用户组
groupadd $username
if [ $? == 0 ];then
    echo "group add success\n"
else
    exit 4
fi

#新增用户并自动建立文件夹和初始配置,设置个密码
useradd -g $username -d /home/$username $username
if [ $? == 0 ];then
    echo "user add success\n"
else
    exit 5
fi

#设置初始密码
echo "123" | passwd --stdin $username

#新建ssh文件目录
mkdir /home/$username/.ssh

#把公钥改名放到对应的地方
mv ~/$username.pub /home/$username/.ssh/authorized_keys

#修改文件夹权限及文件权限
chown -R $username.$username /home/$username/.ssh
chmod 700 /home/$username/.ssh
chmod 644 /home/$username/.ssh/authorized_keys

#改sudoer配置,加入sudoer
chmod 777 /etc/sudoers

echo "$username    ALL=(ALL)       ALL">>/etc/sudoers

#权限改回去
chmod 440 /etc/sudoers

echo "end setting....... \n"
#删除用户并删除其主目录
#userdel -r $username

修改公钥

#!/bin/bash 
# desc: 此脚本用来修改用户登陆公钥
# author:[email protected]
# date: 2015-06-18

# 设置环境变量
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
export PATH

#输入需要创建的用户名
read -p "Input the user name:" username

#确认是否上传相应的文件
read -p "Do you upload user public key file(e.g. xumin.pub) to home directory before excute this script? (y or n):" fileflag

if [ "$fileflag" != "Y" ] && [ "$fileflag" != "y" ]; then 
    echo "please upload user public key file(e.g. xumin.pub) to home directory.\n" 
    exit 2 
fi

echo "start changing....... \n"

#检查公钥文件是否已经上传
filepath=~/$username.pub

if [ -f $filepath ];then
    echo "$filepath 文件存在!"
else
    echo "$filepath 文件不存在或者您输入的路径有误"
    exit 3
fi

rm -rf /home/$username/.ssh/authorized_keys

#把公钥改名放到对应的地方
mv ~/$username.pub /home/$username/.ssh/authorized_keys

#修改文件夹权限及文件权限
chown -R $username.$username /home/$username/.ssh
chmod 700 /home/$username/.ssh
chmod 644 /home/$username/.ssh/authorized_keys

echo "end changing....... \n"
#删除用户并删除其主目录
#userdel -r $username
时间: 2024-10-12 17:04:34

设置服务器公钥登陆sh脚本的相关文章

Linux crontab的使用方式,sh脚本的编写,sh脚本自动启动tomcat服务器,sh监控系统运行情况

1.如果想使用Linux crontab(类似java quartz),需要先启动crontab.关于crontab的启动.关闭.重启.重新载入配置的方式如下: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 2.crontab的命令介绍: A:添加crontab的命令是:c

如何在secureCTR上使用公钥登陆Linux服务器?

我以前一直使用口令通过ssh协议登陆Linux服务器,最近公司要求使用公钥登陆.说是安全,好吧.那我们整一下.那到底使用公钥登陆服务器有什么好处呢?其实我理解是这样的: 当我们创建了公钥和私钥(这是一对,登陆时要使用私钥解密公钥)后,把公钥给任何服务器,登陆Linux服务器时,只要我们的私钥不变,登陆任何服务器都是不需要密码的.而是使用公钥私钥进行身份验证.安全的多!这里也隐含了一个小细节,就是不要把你的私钥给丢了.否则,你想想,几百台服务器上好不容易把你的公钥配置好,而你的私钥丢失,怎么办?私

SecureCRT上使用公钥登陆Linux服务器

SecureCRT部分配置 1.首先生成公钥. 打开SecureCRT(我的版本为7.0,估计其他版本基本相同)程序,点击菜单栏的“工具”->“创建公钥”.按照步骤执行.其中一步比较重要就是选择公钥的格式.建议选择“OpenSSH”,否则在服务器端使用时需要转换为OpenSSH各式.何必多次一举呢.所以这里必须选择“OpenSSH”.如果选错了.重新生成一次就可以了. 然后选择公钥私钥存放的地方.默认Identity是私钥,Identity.pub是公钥. 2.把Identity.pub文件上传

通过sed -i ,通过准备好的sh脚本,来设置linux iptable白名单

通过准备好的sh脚本,来设置linux iptable白名单 特定字符串的行前插入新行 sed -i '/特定字符串/i 新行字符串' file #!/bin/bash del_stdin_buf() { read -d '' -t 0.1 } echo "Setting https enabled for remote access...." https_port=`grep 'dport 443' /etc/sysconfig/iptables | wc -l` if [ $htt

为PHP设置服务器(Apache/Nginx)环境变量

为PHP设置服务器(Apache/Nginx)环境变量 设置环境变量常见的地方为区分开发环境/生产环境,或者定义一些数据库的帐号密码 设置Apache环境变量 指令 设置当前环境变量为DEV SetEnv RUNTIME_ENVIROMENT DEV 数据库帐号密码 SetEnv MYSQL_USERNAME root SetEnv MYSQL_PASSWORD root 配置文件格式 <VirtualHost *:80> ServerAdmin [email protected] Docum

Linux服务器远程登陆

安装ssh服务器 大部分linux的服务器版本默认都已经安装了ssh服务,无需再安装.如果需要安装,使用如下命令 sudo apt-get install ssh #安装ssh服务器 安装以后,ssh服务已启动,并且设置为开机自动启动. 如果需要卸载,使用下列命令 sudo apt-get purge ssh #删除ssh服务器 如果需要启动服务,使用如下命令 sudo /etc/init.d/ssh start #启动ssh服务器 远程登陆 ssh -l chey 192.168.21.137

LVS自动化添加及删除ipvsadm和后端服务器健康状态检测脚本

  LVS director 负载均衡器增加IPVSADM脚本 #vim director.sh #!/bin/bash #chkconfig: - 88 66 #description: this script to add lvs IP VIP=192.168.0.254 DIP=192.168.0.100 RIP1=192.168.0.101 RIP2=192.168.0.102 PORT=80 SCHELE=wrr LOCKFILE=/var/lock/subsys/ipvsadm ca

linux服务器挂掉自动重启脚本(转)

实现原理主要是使用linux提供的crontab机制,定时查询服务器进程是否存在,如果宕机则执行我们预设的重启脚本. 首先我们要向crontab加入一个新任务 sudo crontab -e #进入编辑状态,选用vi编辑. */1 * * * * sh /root/monitor.sh #添加每分钟检测 我这里只是简单的设置每分钟调用一个shell脚本monitor.sh.这里可以配置的更强大,大家可以去搜索一下crontab的教程,网上有很多这类的教程.这里需要注意的是,很多教程配置comma

mysql设置服务器编码

今天写java程序的时候出现了插入mysql数据中文乱码问题,确定数据库和表的编码都已指定utf-8.百度后得知mysql安装后需设置服务器编码,以下是解决方法(ubuntu; mysql 5.6.25): 1.确认现在的编码:登陆mysql后执行show variables like 'character%'; 2.查找mysql配置文件:find / -name '*.cnf' 3.找到my.cnf,编辑,在[mysqld]下添加一句  character-set-server=utf8