登陆服务器创建账号
执行脚本
#!/bin/bash
# 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户
# 不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默
# 认的 123456 作为默认密码。
apt-get -y install expect
read -p "请输入用户名:" user
#使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2
#没有输入用户名脚本退出后,使用$?查看的返回码为 2
groupadd $user
if [ -z $user ]; then
echo " 您不需要输入账户名"
exit 2
fi
#使用 stty ‐echo 关闭 shell 的回显功能
#使用 stty echo 打开 shell 的回显功能
stty -echo
read -p "请输入密码:" pass
stty echo
#pass=${pass:-123456}
useradd "$user" -m -g "$user" -s /bin/bash -d /home/"$user"
echo "$pass" | passwd --stdin "$user"
# 设置用户允许使用sudo
/sbin/usermod -aG sudo $user
执行脚本
切换到用户执行
root@192:~# su guoguo
guoguo@192:/root$ cd /home/guoguo
guoguo@192:~$ ls
guoguo@192:~$ pwd
/home/guoguo
创建ssh-key
ssh-keygen -t ed25519
这个脚本没生效,暂时还没有更改,后期更改
#非交互自动生成当前用户SSH密钥文件
#!/bin/bash
#Author:LIncyou
#-t指定SSH密钥的算法为ed25519算法,-N设置密码为空,-f指定生成的密钥文件存放位置
echo "test expect ....."
expect -c "
spawn
ssh-keygen -t ed25519
expect {
\"Enter file in\" {send \"\r\"; exp_continue}
\"Overwrite\" {send \"y\r\"; exp_continue}
\"Enter passphrase\" {send \"\r\";exp_continue}
\"passphrase again\" {send \"\r exit\";exp_continue}
}
"
echo "end ....."
Xshell使用密钥登录linux
二、介绍
远程ssh连接服务器默认用的是密码验证的方式,这样的验证方式会有安全隐患,容易被人暴力破解密码。如果改成用密钥登录服务器,就会消除这一安全隐患。
三、设置方法
1、Xshell生成密钥
打开Xshell,点击工具–新建用户密钥生成向导,如图
选择ED25519
这里的密钥类型和密钥长度保持默认,单击下一步:
继续单击下一步,在“密钥名称”中输入自己的密钥名称,我输入的密钥名称是guoguo-204中输入给用户密钥加密的密码,继续单击下一步,如图:
单击完成,即可。
这里显示出了刚才生成的密钥。生成的密钥包括公钥和私钥,需要将其中的公钥上传至服务器。
所以这里需要导出公钥。
双击之前生成的密钥My_secret key,点击公钥选项卡,如图:
把这个也导出,这个是需要给你要分配的人员
打开linux服务器
把你xshell生成的公钥上传上来
guoguo@192:~/.ssh$ pwd
/home/guoguo/.ssh
guoguo@192:~/.ssh$ ls
guoguo-204.pub id_ed25519 id_ed25519.pub
完成的
执行命令
guoguo@192:~/.ssh$ ls
guoguo-204.pub id_ed25519 id_ed25519.pub
guoguo@192:~/.ssh$ cat guoguo-204.pub >> authorized_keys
guoguo@192:~/.ssh$ chown root:root authorized_keys
chown: 正在更改'authorized_keys' 的所有者: 不允许的操作
guoguo@192:~/.ssh$ chmod 600 authorized_keys
3、Xshell密钥连接
打开xshell,点击文件–新建:
点击选择你刚才设置的
输入登陆密码
登陆成功