[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
SSH+RSA实现远程免密登陆
时间:
2018-04-01 10:36:16
阅读:
251
评论:
0
收藏:
0
[点我收藏+]
知识部分
简述:
SSH是一种安全通道协议,主要用来实现字符界面的远程登陆、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆是输入的用户口令。SSH和TELNET、RSH等提供了更好的安全性。OpenSSH是实现SSH远程登陆的开源软件项目,适用于Linux、UNIX系统,其官网地址为http://www.openssh.com。
RSA加密算法是一种非对称加密算法。对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。
操作部分
一、修改配置文件
1、OpenSSH在Linux中默认已经安装,所以我们第一步就可以直接在需要开启SSH的linux系统上修改它的配置文件/etc/ssh/sshd_config。首先配置监听地址为192.168.1.1,端口默认22。
2、找到下面几行,将#去除,使其生效。该三行配置是支持基于RSA生成的密钥对认证方式。
3、在配置文件中添加该配置可以配置授权用户。下图所示,允许root从所有网段登陆;允许zhangsan在192.168.1.2上登陆。(这里允许root登陆是为了一会使用scp上传公钥。)
4、重启服务
5、建立用户张三、配置地址为192.168.1.1
二、构建RSA密钥对验证体系
1、在客户端上建立用户lisi作为zhangsan的映射用户,并用lisi登陆linux客户机。
2、用lisi登陆后创建密钥对。
3、密钥对生成后会放在以下路径,确认一下是否生成。其中id_rsa为私钥,id_rsa.pub为公钥。
4、上传公钥到SSH服务端。这里可以使用SSH提供的一个scp命令程序上传该公钥。注意:我们上传公钥通过root用户和密码验证来使用scp命令程序。
5、在服务端将公钥导入到zhangsan的公钥库。首先在zhangsan的根目录/home/zhangsan/下建立.ssh/目录;然后将上传到/tmp下的公钥倒过来。
6、配置地址为192.168.1.2
三、验证。返回到linux客户端中,在lisi中远程登陆SSH服务端。
可以看到,我们登录时并没有输入密码的环节。这种方法即使远程登陆的过程中被抓包,也无法破解密码。既保证了安全性,也有了一定的便捷性。
四、使用windows客户端实现上面的免密登陆。
1、首先为windows客户端配置地址为192.168.1.3
2、我们需要在windows上安全xshell终端模拟软件,以远程连接SSH服务端。
3、打开xshell,点击“工具”-“新建用户密钥生成向导”
4、选择生成RSA密钥,长度2048(自己决定,越长越安全)。
5、生成完成,点击下一步。
6、输入密钥名称及加密密码
7、双击该密钥对,然后将公钥保存起来
8、把公钥上传到SSH服务端的/root/.ssh下。我们通过安装winscp这个软件上传。
9、打开winscp,在该界面输入hostname也就是SSH服务端地址;输入用户名“root”及密码。注意:上传公钥这里仍然使用root用户
10、将刚刚保存到桌面的公钥文件传到SSH服务端中的/root下。直接拖动公钥文件到右边的SSH服务端即可。
11、进入到SSH服务端,找到/root下的id_rsa_2048.pub公钥文件。并将其导入到root的公钥文件中。
12、验证。打开windows客户端的xshell,新建会话
13、点击连接。
14、接受并保存
15、输入登陆用户root
16、这里选择第二个Public Key,输入密钥对的加密密码
17、成功连接
补充:搭配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实现远程免密登陆
原文:http://blog.51cto.com/13434336/2093469
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!