SSH+RSA实现远程免密登陆

SSH是一种安全通道协议,主要用来实现字符界面的远程登陆、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆是输入的用户口令。SSH和TELNET、RSH等提供了更好的安全性。OpenSSH是实现SSH远程登陆的开源软件项目,适用于Linux、UNIX系统,其官网地址为http://www.openssh.com。
RSA加密算法是一种非对称加密算法。对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到目前为止,世界上还没有任何可靠的***RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。
操作部分
SSH+RSA实现远程免密登陆
一、修改配置文件
1、OpenSSH在Linux中默认已经安装,所以我们第一步就可以直接在需要开启SSH的linux系统上修改它的配置文件/etc/ssh/sshd_config。首先配置监听地址为192.168.1.1,端口默认22。
SSH+RSA实现远程免密登陆
2、找到下面几行,将#去除,使其生效。该三行配置是支持基于RSA生成的密钥对认证方式。
SSH+RSA实现远程免密登陆
3、在配置文件中添加该配置可以配置授权用户。下图所示,允许root从所有网段登陆;允许zhangsan在192.168.1.2上登陆。(这里允许root登陆是为了一会使用scp上传公钥。)
SSH+RSA实现远程免密登陆
4、重启服务
SSH+RSA实现远程免密登陆
5、建立用户张三、配置地址为192.168.1.1
SSH+RSA实现远程免密登陆
二、构建RSA密钥对验证体系
1、在客户端上建立用户lisi作为zhangsan的映射用户,并用lisi登陆linux客户机。
SSH+RSA实现远程免密登陆
2、用lisi登陆后创建密钥对。
SSH+RSA实现远程免密登陆
3、密钥对生成后会放在以下路径,确认一下是否生成。其中id_rsa为私钥,id_rsa.pub为公钥。
SSH+RSA实现远程免密登陆
4、上传公钥到SSH服务端。这里可以使用SSH提供的一个scp命令程序上传该公钥。注意:我们上传公钥通过root用户和密码验证来使用scp命令程序。
SSH+RSA实现远程免密登陆
5、在服务端将公钥导入到zhangsan的公钥库。首先在zhangsan的根目录/home/zhangsan/下建立.ssh/目录;然后将上传到/tmp下的公钥倒过来。
SSH+RSA实现远程免密登陆
6、配置地址为192.168.1.2
三、验证。返回到linux客户端中,在lisi中远程登陆SSH服务端。
SSH+RSA实现远程免密登陆
可以看到,我们登录时并没有输入密码的环节。这种方法即使远程登陆的过程中被抓包,也无法破解密码。既保证了安全性,也有了一定的便捷性。
四、使用windows客户端实现上面的免密登陆。
1、首先为windows客户端配置地址为192.168.1.3
SSH+RSA实现远程免密登陆
2、我们需要在windows上安全xshell终端模拟软件,以远程连接SSH服务端。
SSH+RSA实现远程免密登陆
3、打开xshell,点击“工具”-“新建用户密钥生成向导”
SSH+RSA实现远程免密登陆
4、选择生成RSA密钥,长度2048(自己决定,越长越安全)。
SSH+RSA实现远程免密登陆
5、生成完成,点击下一步。
SSH+RSA实现远程免密登陆
6、输入密钥名称及加密密码
SSH+RSA实现远程免密登陆
7、双击该密钥对,然后将公钥保存起来
SSH+RSA实现远程免密登陆
SSH+RSA实现远程免密登陆
8、把公钥上传到SSH服务端的/root/.ssh下。我们通过安装winscp这个软件上传。
SSH+RSA实现远程免密登陆
9、打开winscp,在该界面输入hostname也就是SSH服务端地址;输入用户名“root”及密码。注意:上传公钥这里仍然使用root用户
SSH+RSA实现远程免密登陆
10、将刚刚保存到桌面的公钥文件传到SSH服务端中的/root下。直接拖动公钥文件到右边的SSH服务端即可。
SSH+RSA实现远程免密登陆
11、进入到SSH服务端,找到/root下的id_rsa_2048.pub公钥文件。并将其导入到root的公钥文件中。
SSH+RSA实现远程免密登陆
12、验证。打开windows客户端的xshell,新建会话
SSH+RSA实现远程免密登陆
13、点击连接。
SSH+RSA实现远程免密登陆
14、接受并保存
SSH+RSA实现远程免密登陆
15、输入登陆用户root
SSH+RSA实现远程免密登陆
16、这里选择第二个Public Key,输入密钥对的加密密码
SSH+RSA实现远程免密登陆
17、成功连接
SSH+RSA实现远程免密登陆
补充:搭配TCP Wrappers做SSH的访问控制。
TCP Wrappers可以将其他的TCP服务程序“包裹”起来,增加一个安全监测过程,外来的连接请求需要经过TCP Wrappers的检测,获得许可才可以访问到真正的服务程序。通常TCP Wrappers默认安装,我们直接配置即可。他的两个策略文件为/etc/hosts.allow、/etc/hosts.deny,分别用来设置允许、拒绝策略。
如图,编辑/etc/hosts.allow,格式为<服务程序>:<客户机地址>。(例如192.168.2.0网段用192.168.2.*表示;ALL表示所有网段。如果写多个网段、多个服务可以用“,”分隔。)图中表示允许192.168.1.2和192.168.2.0/24网段使用SSH远程。
SSH+RSA实现远程免密登陆

转载于:https://blog.51cto.com/13434336/2093469

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值