专栏首页技术那些事SSH证书登录方式(无密码验证登录)

SSH证书登录方式(无密码验证登录)

常常在工作中需要在各个Linux机间进行跳转,每次密码的输入成了麻烦,而且也不安全。在实际使用中,在windows下常使用secureCRT工具或teraterm工具进行SSH登录,以及实现hadoop集群部署要求的无密码跳转问题。

SSH分为有密码登录和证书登录。考虑到安全性因素,一般都是采用证书登录,即:每次登录无需输入密码。如果是密码登录,很容易遭受到外来的攻击。

一、证书登录的过程:

1.客户端生成证书的私钥和公钥。

私钥放在客户端,公钥上传到服务端(远程登陆端)。

一般为了安全,访问有黑客拷贝客户端的私钥,客户端在生成私钥时,会设置一个密码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥(如果工作中,你使用了一个没有密码的私钥,有一天服务器被黑了,你是跳到黄河都洗不清)。

2.服务器添加信用公钥。

把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中,这样,就完成ssh证书登录的配置了。

假设客户端想通过私钥要登录其他ssh服务器,同理,可以把公钥上传到其他ssh服务器。

实际应用举例:

工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的,如果被别人恶意拷贝,你又没有设置私钥密码,那么,服务器就全完了,员工也可以放长假了。

二、证书登陆实例:

环境:A通过ssh方式登陆B,即:A为本地机,B为远程登陆server

1.A机配置

①生成公钥和私钥

(连续三次回车,即在本地生成了公钥和私钥,不设置密码)

# ssh-keygen -t rsa

②将公钥拷到B端

# scp root@B的iP:root/.ssh/id_rsa.pub ./.ssh/id_rsa.pub (需要输入密码)

2.B机配置

①创建authorized_keys2文件

(如果已经存在这个文件, 跳过这条)

# touch /root/.ssh/authorized_keys2

②追加公钥到authorized_keys2中

(将id_rsa.pub的内容追加到 authorized_keys2 中)

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2

3.SSH证书登陆验证

(因为没有设置私钥密码, 所以不需要密码, 登录成功)

# ssh root@B的iP

三、其他应用场景:

SecureCRT密钥key远连接程ssh证书登录Linux

国内大部分人用的系统是windows,而windows下有很多ssh客户端图形工作,最流行,功能最强大的就是SecureCRT了,所以我会单独针对SecureCRT简单讲下实现ssh证书登录Linux的要点,步骤如下:

1:在SecureCRT创建私钥和公钥:

主菜单->工具->创建公钥->选择RSA->填写私钥的密码->密钥长度填为1024->点击完成,生成两个文件,默认名为identity和identity.pub

2.把私钥和公钥转换为OpenSSH格式:

主菜单->工具->转换私钥到OpenSSH格式->选择刚生成私钥文件identity->输入私钥的密码->生成两个文件,指定为id_rsa, id_rsa.pub

3.把公钥id_rsa.pub上传到ssh服务器,按照之前配置服务器端的证书,再配置一次。

另外,如果你之前用windows的 SecureCRT的证书登录linux的,有一天你换成了linux,并希望通过原来的私钥登录公司的服务器,那么可以把id_rsa拷贝倒~/.ssh/目录下。

备注:

ssh对证书的文件和目录权限比较敏感,要么根据出错提示设置好文件和目录权限,要么是把StrictModes选项设置为no。

hadoop部署的无密码ssh登录

hadoop要求master要无密码跳转到每个slave,那么master就是上文中的ssh客户端了,步骤如下:

1.在hadoop master上,生成公钥私钥,这个场景下,私钥不能设置密码。

2.把公钥上传到每个slave上指定的目录,这样就完成了ssh的无密码跳转了。

四、总结:

ssh证书登录,在实际工作才是最常用的登录方式,本人结合了真正工作的场景普及了ssh证书登录的知识,并根据流行的hadoop部署和windows下最常用的SecureCRT实例讲解了证书登录。

本文分享自微信公众号 - 程序猿技术大咖(cxyjsdk),作者:xcbey0nd

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java 工程师居家必备的 Intellij IDEA Top10 插件

    支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码 非常方便

    xcbeyond
  • JDK1.8新特性(四):函数式接口

    上一篇JDK1.8新特性(三):Lambda表达式,让你爱不释手,只是简单的讲到Lambda表达式的语法、使用,使得你对它产生了好感,而Lambda表达式是如何...

    xcbeyond
  • 12 种主流编程语言输出“ Hello World ”,哪种语言更简洁?

    作为一名程序员,在初步学习编程想必都绕不开一个最为基础的入门级示例“Hello World”,那么,你真的了解各个语言“Hello World”的正确写法吗?

    xcbeyond
  • 模拟利用Redis入侵系统

    昨天的文章写了系统被黑过程,原因是redis安全配置没做好,让黑客轻松通过redis设置了ssh免密码登陆,从而成功入侵 对这个攻击过程有点好奇,就查了下相关...

    dys
  • zabbix报错cannot set resource limit: [13] Permission denied解决方法

    [root@localhost ~]# systemctl start zabbix-server

    拓荒者
  • Redis未授权访问漏洞的重现与利用

    前言: 最近配置openvas的时候安装了redis,听说曾经曝出过一个未授权访问漏洞,便找了一下相关资料想自己动手复现一下漏洞的利用过程,当然所有的攻击性操作...

    FB客服
  • 腾讯云函数初探

    前不久的微信开发者大会上在推他们的Serverless架构,即他们的产品腾讯云函数SCF。 当然这个也不是新鲜的事物,在亚马逊提供的同类服务叫做lambda,阿...

    槽痞
  • 【玩转腾讯云】腾讯云函数SCF初探

    前不久的微信开发者大会上在推他们的Serverless架构,即他们的产品腾讯云函数SCF。

    槽痞
  • 死磕 java集合之ConcurrentHashMap源码分析(二)

    (3)扩容门槛写死的是桶数组大小的0.75倍,桶数组大小即map的容量,也就是最多存储多少个元素。

    彤哥
  • Spring @Lookup实现单例bean依赖注入原型bean

    地址:https://www.jianshu.com/p/5254e1947d77

    林老师带你学编程

扫码关注云+社区

领取腾讯云代金券