登陆服务器创建账号
执行脚本
#!/bin/bash# 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户# 不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默# 认的 123456 作为默认密码。apt-get -y install expectread -p "请输入用户名:" user#使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2#没有输入用户名脚本退出后,使用$?查看的返回码为 2groupadd $userif [ -z $user ]; thenecho " 您不需要输入账户名"exit 2fi#使用 stty ‐echo 关闭 shell 的回显功能#使用 stty echo 打开 shell 的回显功能stty -echoread -p "请输入密码:" passstty 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 guoguoguoguo@192:/root$ cd /home/guoguoguoguo@192:~$ lsguoguo@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 "spawnssh-keygen -t ed25519expect {\"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/.sshguoguo@192:~/.ssh$ lsguoguo-204.pub id_ed25519 id_ed25519.pub

完成的

执行命令
guoguo@192:~/.ssh$ lsguoguo-204.pub id_ed25519 id_ed25519.pubguoguo@192:~/.ssh$ cat guoguo-204.pub >> authorized_keysguoguo@192:~/.ssh$ chown root:root authorized_keyschown: 正在更改'authorized_keys' 的所有者: 不允许的操作guoguo@192:~/.ssh$ chmod 600 authorized_keys

3、Xshell密钥连接
打开xshell,点击文件–新建:

点击选择你刚才设置的

输入登陆密码

登陆成功
