CentOS7.4+ root用户 设置SSH密钥访问 并停用密码

机器直接接入公网后,如果保留默认的密码登录访问会存在被别人“撬锁”的风险,特别是root用户,虽然不一定能撬开,但我不想让别人惦记着自己家门,重装了一台centos的主机随手就把密码登录关掉,就感觉很舒适 :>

注:本文适用于CentOS版本7.4以上、OpenSSH_8.0p1以上,且下面以root用户为例

step1:

重装完系统后先生成ssh密钥,因为一般linux发行版自带openssh,所以在新装好的系统上直接`

ssh-keygen -t rsa -b 4096 -C "your comment"

参数介绍:
-t(type) ,加密算法,可选rsa(默认)/dsa, 所以如果用rsa其实上面-t rsa不用指定
-b(bit),密钥长度,rsa默认2048,dsa固定1024
-C(comment),描述,随便写,常见写自己的邮箱,好认、嗯
紧接着,提示你填写一些东西,比如文件名啊、密码啊(密钥也是有密码的,登的时候不仅要文件,还要密码,一般为了方便都不设这个,前提是保管好你的密钥文件!),所以你愿意的话(反正我经常就是)Enter,Enter,Enter…

step2:

进入相应的目录/root/.ssh/,可以看到目录下文件authorized_keys内容空空如也,所以要把公钥文件(就是后缀.pub的那个)中的内容写到里面去:

cd /root/.ssh/
cat id_rsa.pub >> authorized_keys

step3:

修改ssh配置文件

vi /etc/ssh/sshd_config

找到并修改以下一条以开启密钥登录
PubkeyAuthentication yes
找到并修改以下两条以关闭密码登录
PermitEmptyPasswords no
PasswordAuthentication no
如果你的机器仅能通过SSH访问,例如你的是云主机,那么还是建议先成功通过ssh密钥登录成功后,再放心的关掉ssh密码登录
保存并重启ssh以使配置生效:

systemctl restart sshd

step4:

将目录/root/.ssh/下的私钥,也就是没有后缀(.pub)的那个,搞到你的另一台设备上测试是否能登录:

例如本人在windows的shell下:

ssh -i  C:/Users/xxx/Desktop/id_rsa root@xxx.xx.xx.xxx -p 22

-i 指定私钥文件即文件路径
-p 指定端口,默认就是22 不用指定,ps:修改一下ssh的端口更安全,具体改法请详读sshd_config配置文件。
如果没有什么异常提示,并成功登录主机(密钥没有设置密码的话,则直接会登录主机),那么就成功了。注意执行该命令如果找不到私钥文件,则ssh会转而通过密码方式登录,注意这一点。
令外,如果你通过一些花花绿绿的shell软件登录的话,请仔细参照相应软件的说明,选择好你的私钥文件即可。

多说一些:

centos7以上使用systemctl restart sshd重启ssh服务,而不是systemctl restart ssh。
网上很多对于修改sshd_config内容的说法不一,原因来自于各发行版Linux支持的ssh协议版本的不同,本文中为例的ssh为第二代协议版。而有些linux发行版中可能同时兼容ssh的新旧版。但CentOS7.4+是完全摒弃了ssh一代协议,这也是本文仅适用于CentOS7.4+的原因。
参考:https://en.wikipedia.org/wiki/SSH_(Secure_Shell)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值