ssh互信免密登录失败排查,什么是ssh密钥注入

如果你购买了阿里云、腾讯云或者华为云等国内云服务上的服务器,默认登录都是以密码的方式,这就给潜在的渗透带来了机会,因为当你的linux服务器暴露在外网当中时,服务器就极有可能会遭到互联网上的扫描软件进行扫描,然后试图连接ssh端口进行暴力破解(穷举扫描),如果你不采取相对应的措施,迟早有一天服务器会被渗透者攻陷,这也就解释了为什么google cloud(谷歌云)和aws(亚马逊云)默认都是以秘钥的方式登录服务器。

基于密钥的安全验证必须为用户自己创建一对密钥(公钥和私钥),并把公钥放在需要访问的服务器上。当需要连接到远程服务器上时,客户端软件就会向服务器发出请求,请求使用私钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找公钥,然后把它和发送过来的密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(moba、iTerm)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的,之前做支付宝支付我们就使用过秘钥的方式来加强支付安全性,详见:在Mac系统下生成新版支付宝(2019年4月)支付接口私钥和公钥。

本次我们将服务器的登录方式改造成秘钥+密码的形式,提高安全性,这里以Centos7.6为例子。

首先登录到服务器中,执行命令生成秘钥

ssh-keygen -t rsa

返回信息:

Generating public/private rsa key pair.Enter file in which to save the key (.ssh/id_rsa): //直接回车,这是秘钥的地址Enter passphrase (empty for no passphrase): //输入密钥密码(如果不设置,请直接回车。强烈建议输入1个密码- -)Enter same passphrase again: //重复密钥密码

之后将~/.ssh/id_rsa.pub 复制到 ~/.ssh/authorized_keys,并且赋予权限。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys

随后修改/etc/ssh/sshd_config 文件,将PubkeyAuthentication 后面的值都改成yes ,保存。

重启sshd服务,让配置生效

sudo service sshd restart

此时,我们就可以测试一下是否可以用秘钥登录了,将服务器目录中的秘钥~/.ssh/id_rsa下载到本地

如果是windows用户,推荐使用MobaXterm,在ssh设置中,勾选使用秘钥并且选择本地秘钥即可。

别让你的服务器沦为肉鸡(ssh暴力破解),密钥验证、双向因子登录

如果平台是Mac os,这里推荐使用iTerm 4,同样在ssh设置中,选择运行ssh命令。

别让你的服务器沦为肉鸡(ssh暴力破解),密钥验证、双向因子登录

设置命令:

ssh -p 22 root@你的ip -i 你的秘钥地址

如果使用秘钥登录成功了,我们就可以考虑停用密码验证登录方式,修改/etc/ssh/sshd_config 文件将PasswordAuthentication yes 修改成 PasswordAuthentication no。

重启ssh服务

sudo service sshd restart

这样安全性确实大大提升了,但是也不是滴水不漏,因为你本地电脑也是有可能被入侵的,也就是存储在本机电脑的私钥有几率被窃取,那么有没有方法可以杜绝这种情况呢?

答案是可以的,那就是使用双因子认证(Two-factor authentication),业内也叫两步认证,这项技术苹果和谷歌都是率先使用,尤其是苹果的icloud爆出艳照门之后,两步验证就显得至关重要。

双因子认证,除了需要验证用户名密码外,还要结合另外一种实物设备,如Rsa令牌,或者手机。

如果我们把传统的用户名密码验证称为单因子认证,那么对比双因子认证,他们的区别如下:

1FA – What you know (e.g. a password, a pin)
2FA – What you have (e.g. a phone, a hardware token)
3FA – What you are (e.g. your fingerprints, you retina)

是的,你没看错,还有三因子认证,也就是通过指纹和视网膜验证,这个在手机上很普遍,大家都不陌生。

双因子认证的产品大致可以分成两类:

1、可以产生token的硬件设备

2、智能手机的app

手机短信验证码,登录微信公众号时的扫码确认都可以称为双因子认证。双因子认证,还会结合一个只有你有的硬件设备。只要这个专属的硬件设备不丢失(察觉这个设备丢失,比用户名密码泄露,会容易很多),就可以大大地提升账号的安全性。

这里我们使用google-authenticator,开启服务器双因子认证。

首先,去google的android应用市场,或者apple的appStore去安装:“Google Authenticator(google身份验证器)”。

然后登录要开启双因子认证登录的服务器,进行为服务器安装依赖

yum -y install gcc gcc-c++ make wget pam-devel

安装Google Authenticator

wget ***/files/libpam-google-authenticator-1.0-source.tar.bz2tar jxvf libpam-google-authenticator-1.0-source.tar.bz2cd libpam-google-authenticator-1.0makesudo make install

使用SSH登录时调用google-authenticator模块

auth required pam_google_authenticator.so

再次编辑/etc/ssh/sshd_config,在文件中查找ChallengeResponseAuthentication和UsePAM,将后面的值改为 yes:

ChallengeResponseAuthentication yesUsePAM yes

再次重启ssh服务

sudo service sshd restart

随后,为用户root绑定认证

su -google-authenticator

返回命令

Do you want authentication tokens to be time-based (y/n) y***/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@google%3Fsecret%3DCKHMVUVJNTPYSPTQYour new secret key is: CKHMVUVJNTPYSPTQYour verification code is 734261Your emergency scratch codes are:6874833715176712302870107058590538041521

生成了共享秘钥:CKHMVUVJNTPYSPTQ

接着一路yes

Do you want me to update your "/root/.google_authenticator" file (y/n) yDo you want to disallow multiple uses of the same authenticationtoken? This restricts you to one login about every 30s, but it increasesyour chances to notice or even prevent man-in-the-middle attacks (y/n) yBy default, tokens are good for 30 seconds and in order to compensate forpossible time-skew between the client and the server, we allow an extratoken before and after the current time. If you experience problems with poortime synchronization, you can increase the window from its defaultsize of 1:30min to about 4min. Do you want to do so (y/n) yIf the computer that you are logging into isn't hardened against brute-forcelogin attempts, you can enable rate-limiting for the authentication module.By default, this limits attackers to no more than 3 login attempts every 30s.Do you want to enable rate-limiting (y/n) y

随后再次登录服务器,会让我们输入一个验证码:

verification code:

此时打开手机上的google身份验证器App,输入对应的code即可

别让你的服务器沦为肉鸡(ssh暴力破解),密钥验证、双向因子登录

结语:网络千万条,安全第一条,无论多么高深的技术,离开了安全性,那么一切都将失去意义,是空谈,空谈误国,实干兴邦,网络安全,造福大家。

(0)
上一篇 2023年3月28日 上午11:38
下一篇 2023年3月28日 上午11:43

相关推荐

  • 怎么丰胸

    本文目录 1. 增加蛋白质摄入 2. 进行乳房按摩 3. 穿戴合适的内衣 4. 进行胸部运动 每个女性都希望自己拥有一个丰满的胸部,这也是许多女性一直以来都在关注的问题。如果你也想…

    生活百科 2023年7月22日
    0
  • 利润的计算与结转

    “利润”不但对于企业而言,十分重要;对于会计人的工作和考试来讲,其重要性也是不言而喻的。今天就和大家唠唠有关“利润”的相关知识。   首先要“知己知彼”。利润是由哪几部分组成的呢?…

    2023年4月24日
    0
  • 4种简单的运动鞋除臭小妙招,单鞋除臭小妙招

    当你运动之后回到屋里,这时候房间里的每个人都出去了,可你并不清楚怎么回事,直到你闻到一股令人厌恶的汗臭味,而这股气体似乎是从你的鞋子里冒出来的。如果你想摆脱这种尴尬,就按照下面的方…

    2023年1月19日
    0
  • 张纪中版《西游记》演员表,张纪中版西游记幕后化妆

    在这么多《西游记》电视剧中,最经典的肯定是六小龄童主演的版本了,而最接近原著的则是张纪中版本,除了聂远、吴樾、臧金生、徐锦江四位主演外,这部剧里其实还有不少实力派的明星演员。 玉帝…

    2023年4月5日
    0
  • 淘友圈什么时候上线的,淘友圈怎么开通

    本文目录 1. 淘友圈什么时候上线的 2. 淘友圈怎么开通 3. 关闭淘友圈买东西好友能看到吗 4. 为什么面膜不能被分享到淘友圈 淘友圈什么时候上线的 淘友圈2020年8月份开始…

    生活百科 2023年12月3日
    0
  • 我的异性朋友都说过喜欢我,可是为什么没有一个真真正正留在我身边

    现在由情感小白兔小白兔来为你作答,其实我们都知道,异性之间没有纯洁的友谊,这基本上已经成为了共识,他们说喜欢你,然后就没有然后了,无非就是他们想要的没有得到,他们对你只是想发生关系…

    2023年1月6日
    0
  • 云集自营品牌可靠吗

    电商对自有品牌十分钟情。在贝贝网、蜜芽关闭主站转做品牌后,云集也加入了这个阵营。近日,北京商报记者注意到,云集将素野、P&S等自有品牌与国际大牌一起被推至C位。高利润,是电…

    2023年3月16日
    0
  • 盐蒸橙子的做法

    本文目录 1.所需材料 2.制作步骤 3.注意事项 盐蒸橙子是一道非常简单易做的小吃,口感清爽,又能够缓解口干舌燥。下面是制作盐蒸橙子的详细步骤: 所需材料 鲜橙子 2个 食用盐 …

    生活百科 2023年7月5日
    0
  • 借呗突然没有额度了花呗会不会也没有

    生活中,经常会遇到需要借钱的情况,而借呗和花呗就是我们常用的信用借贷平台。然而,有些用户可能会遇到这样的情况:借呗突然没有额度了,那么花呗会不会也没有额度了呢? 首先,我们需要知道…

    生活百科 2023年8月14日
    0
  • 千万不要跟专升本的谈恋爱有什么说法

    近年来,随着高中毕业生人数的不断增加,考大学的竞争也愈发激烈。为了提高自己的学历和就业竞争力,不少人选择了专升本的路线。然而,这也引发了一个问题:专升本的人能否和本科生一样享受恋爱…

    生活百科 2023年6月16日
    0

发表评论

登录后才能评论