CentOS7秘钥
作者QQ:67065435 QQ群:821635552
本站内容全部为作者原创,转载请注明出处!
目标:禁用root登录ssh,设置只允许普通管理员使用秘钥访问ssh
修改root用户密码
xshell连接服务器 查看当前用户 id 修改当前用户密码 passwd 修改指定用户密码(admin为例) passwd admin 输两次密码 完成
新建一个用户
useradd user1 passwd user1 输两次密码
禁止root直接登录sshd
vim /etc/ssh/sshd_config #PermitRootLogin yes 改为 PermitRootLogin no 重启sshd服务 systemctl restart sshd
修改默认登录端口
vim /etc/ssh/sshd_config #Port 22 改为 Port 2022 重启sshd服务 systemctl restart sshd
开启防火墙2022端口
firewall-cmd --zone=public --add-port=2022/tcp --permanent firewall-cmd --reload
测试user1是否能登录
ssh user1@xxx.xxx.xxx.xxx 2022 输入密码 su root 输入root密码
测试root是否已经无法登录ssh
ssh root@xxx.xxx.xxx.xxx 2022 输入root密码 不能登录说明已经成功禁用
生成客户端秘钥文件
su user1 ssh-keygen -t rsa 输入秘钥文件保存路径: 不输入则默认为: /home/user1/.ssh/id_rsa(具体默认路径看提示) 输入密码 不输入则默认为空密码 再次输入密码 与上次密码相同 ------------------------------------------------------------- Your identification has been saved in /home/user1/.ssh/id_rsa Your public key has been saved in /home/user1/.ssh/id_rsa.pub -------------------------------------------------------------
下载私钥到本地,删除服务器私钥
Linux: cd ~ scp -P 2022 user1@xxx.xxx.xxx.xxx:/home/user1/.ssh/id_rsa . rm -f /home/user1/.ssh/id_rsa Windows: (WinSCP)等工具。。。 注意,一定要保证本地已经下载了私钥文件 注意,一定要保证本地已经下载了私钥文件 注意,一定要保证本地已经下载了私钥文件
权限设置
cd /home/user1/.ssh/ touch authorized_keys cat /home/user1/.ssh/id_rsa.pub > /home/user1/.ssh/authorized_keys chmod 700 /home/user1/.ssh/ chmod 400 /home/user1/.ssh/authorized_keys
配置ssh
su root 输入密码 vim /etc/ssh/sshd_config #禁止密码登录 PasswordAuthentication no #启用密钥登录 RSAAuthentication yes #启用公钥验证 PubkeyAuthentication yes #指定公钥位置(一定要这样写) AuthorizedKeysFile .ssh/authorized_keys #重启sshd systemctl restart sshd su user1
测试是否生效
以xshell为例: 新建一个连接->选择用户秘钥->导入->id_rsa路径->选中、确定。 如果之前创建秘钥时,添加了密码,此时输入那个密码,点确定。