admin 管理员组文章数量: 887021
[OS
简介
之前用用户名和密码登陆服务器 这样不安全 ,用SSH公钥(public key)验证 这个办法能很好的解决 登陆服务器 和安全登陆服务器的特点:
方法 / 步骤
🔐 一: 证书生成
命令行页面生成 (推荐)
查看执行结果,这时候连续回车即可,注意id_rsa和id_rsa.pub文件一定要在当前用户的.ssh目录下面,ssh公钥登录的时候默认读取该目录下面的私钥文件。
# 进入当前用户ssh文件夹
cd ~/.ssh
# 如果没有这个文件夹 则使用下面命令进行生成.ssh文件夹
#ssh localhost# 使用目标账号登录目标服务器,使用ssh key生成器生成账号 这时候连续回车即可
ssh-keygen -t rsa
# 或者使用
# ssh-keygen -t rsa -b 4096# enter 键盘保存key
# Enter file in which to save the key # 回车输入密码(使用私钥登录的密码:可以为空)
# Enter passphrase (empty for no passphrase):
# 一路enter 之后生成 id_rsa(私钥文件) id_rsa.pub(公钥文件)
🔐 🔨 二: SSH登录配置
2.1 上传公钥到KVM
把公钥文件 ssh_login.pub上传到 /root/.ssh/ 目录下
#进入.ssh
cd ~/.ssh
#这里我们使用的是root账户,我们先将id_rsa.pub文件放到root根目录下,然后将id_rsa.pub文件的内容追加到.ssh/authorized_keys文件中。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2.2 更改权限
注意: 1) .ssh目录的权限必须是700 2) .ssh/authorized_keys文件权限必须是600。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
2.3 配置登录项
cd /etc/ssh
# ssh 配置文件
vi /etc/ssh/sshd_config
- 📜配置项
# yes 允许Root远程登录
# without-password:允许除密码以外(推荐配置 关闭root账号密码登录)
# forced-commands-only:仅允许使用密钥
PermitRootLogin without-password#使用公钥验证
PubkeyAuthentication yes# 是否开启密码登录 yes:开启密码登录 no:禁用密码登录
PasswordAuthentication no #开启RSA验证(centOS 7.4之后该配置项被遗弃)
#RSAAuthentication yes #公钥保存位置 (把公钥ssh_login.pub内容复制到authorized_keys里面)
AuthorizedKeysFile .ssh/authorized_keys#必要时,可以通过下面的配置属性修改登录端口
# Port 22
# 找到StrictModes字段,将yes修改为no
#StrictModes yes
2.3 重启ssh服务即可使用ssh密钥登录
systemctl restart sshd
systemctl restart sshd.service
不使用证书会有如下提示
restorecon -R -v /home #root用户为/root
🎫 三: 使用证书登录
另外开启一个窗口(尽量不要关闭当前配置窗口) 测试登录
目前MobaXterm v20.0 Build 4286会有闪退问题 暂时不确定是否是个例
📌附录: 密钥绑定账号
给组员分配登录账号时候,只允许密钥登录的时候可以做以下操作
- 使用目标账号登录目标服务器,使用ssh key生成器生成账号
ssh-keygen -t rsa -b 4096
# enter 键盘保存key
# Enter file in which to save the key # 回车输入密码(使用私钥登录的密码:可以为空)
# Enter passphrase (empty for no passphrase):
# 一路enter 之后生成 id_rsa(私钥文件) id_rsa.pub(公钥文件)# 把公钥文件id_rsa.pub 改名为authorized_keys
mv id_rsa.pub authorized_keys
把id_rsa(私钥文件) 拷贝出来,就是可以登录该账号了
📌附录:SSH黑白名单设置
-
黑名单登录表 (优先级高于白名单)
文件路径/etc/sshd.deny.hosteye
直接填写ip然后换行即可 -
白名单登陆表
文件路径/etc/hosts.allow
直接填写ip然后换行即可
❗❗ 修改完之后运行下面命令行生效
#service xinetd restart
参考资料 & 致谢
本文标签: OS
版权声明:本文标题:[OS 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687113362h65270.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论