登陆服务器创建账号

执行脚本
  1. #!/bin/bash
  2. # 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户
  3. # 不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默
  4. # 认的 123456 作为默认密码。
  5. apt-get -y install expect
  6. read -p "请输入用户名:" user
  7. #使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2
  8. #没有输入用户名脚本退出后,使用$?查看的返回码为 2
  9. groupadd $user
  10. if [ -z $user ]; then
  11. echo " 您不需要输入账户名"
  12. exit 2
  13. fi
  14. #使用 stty ‐echo 关闭 shell 的回显功能
  15. #使用 stty echo 打开 shell 的回显功能
  16. stty -echo
  17. read -p "请输入密码:" pass
  18. stty echo
  19. #pass=${pass:-123456}
  20. useradd "$user" -m -g "$user" -s /bin/bash -d /home/"$user"
  21. echo "$pass" | passwd --stdin "$user"
  22. # 设置用户允许使用sudo
  23. /sbin/usermod -aG sudo $user

账号登陆分配key - 图1

执行脚本

账号登陆分配key - 图2

切换到用户执行
  1. root@192:~# su guoguo
  2. guoguo@192:/root$ cd /home/guoguo
  3. guoguo@192:~$ ls
  4. guoguo@192:~$ pwd
  5. /home/guoguo

创建ssh-key
  1. ssh-keygen -t ed25519

账号登陆分配key - 图3

  1. 这个脚本没生效,暂时还没有更改,后期更改
  2. #非交互自动生成当前用户SSH密钥文件
  3. #!/bin/bash
  4. #Author:LIncyou
  5. #-t指定SSH密钥的算法为ed25519算法,-N设置密码为空,-f指定生成的密钥文件存放位置
  6. echo "test expect ....."
  7. expect -c "
  8. spawn
  9. ssh-keygen -t ed25519
  10. expect {
  11. \"Enter file in\" {send \"\r\"; exp_continue}
  12. \"Overwrite\" {send \"y\r\"; exp_continue}
  13. \"Enter passphrase\" {send \"\r\";exp_continue}
  14. \"passphrase again\" {send \"\r exit\";exp_continue}
  15. }
  16. "
  17. echo "end ....."

Xshell使用密钥登录linux

二、介绍
远程ssh连接服务器默认用的是密码验证的方式,这样的验证方式会有安全隐患,容易被人暴力破解密码。如果改成用密钥登录服务器,就会消除这一安全隐患。

三、设置方法
1、Xshell生成密钥
打开Xshell,点击工具–新建用户密钥生成向导,如图

账号登陆分配key - 图4

选择ED25519

账号登陆分配key - 图5

这里的密钥类型和密钥长度保持默认,单击下一步:
账号登陆分配key - 图6

继续单击下一步,在“密钥名称”中输入自己的密钥名称,我输入的密钥名称是guoguo-204中输入给用户密钥加密的密码,继续单击下一步,如图:

账号登陆分配key - 图7

单击完成,即可。

账号登陆分配key - 图8

这里显示出了刚才生成的密钥。生成的密钥包括公钥和私钥,需要将其中的公钥上传至服务器。
所以这里需要导出公钥。
双击之前生成的密钥My_secret key,点击公钥选项卡,如图:

账号登陆分配key - 图9

把这个也导出,这个是需要给你要分配的人员
账号登陆分配key - 图10

账号登陆分配key - 图11

打开linux服务器

把你xshell生成的公钥上传上来

  1. guoguo@192:~/.ssh$ pwd
  2. /home/guoguo/.ssh
  3. guoguo@192:~/.ssh$ ls
  4. guoguo-204.pub id_ed25519 id_ed25519.pub

账号登陆分配key - 图12

完成的
账号登陆分配key - 图13

执行命令

  1. guoguo@192:~/.ssh$ ls
  2. guoguo-204.pub id_ed25519 id_ed25519.pub
  3. guoguo@192:~/.ssh$ cat guoguo-204.pub >> authorized_keys
  4. guoguo@192:~/.ssh$ chown root:root authorized_keys
  5. chown: 正在更改'authorized_keys' 的所有者: 不允许的操作
  6. guoguo@192:~/.ssh$ chmod 600 authorized_keys

账号登陆分配key - 图14

3、Xshell密钥连接

打开xshell,点击文件–新建:

账号登陆分配key - 图15

点击选择你刚才设置的
账号登陆分配key - 图16

输入登陆密码

账号登陆分配key - 图17

登陆成功