本文主要是介绍Linux上实现ssh免密通讯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Linux上实现ssh免密通讯
- 1.SSH互信原理
- 2.SSH所需的RPM包
- 3.两台机器实现互信
- 4.常见问题及处理
1.SSH互信原理
SSH(Secure Shell)是一种安全的传输协议,它能让Linux系统中的服务器和客户端之间进行安全可靠的通讯。
SSH使用加密的传输方式,以保证客户端和服务器之间的通讯安全。默认加密技术:rsa,加密位:2048位,将用户数据和控制指令加密,以保护数据不被第三方拦截。
SSH可以验证客户端的身份,确保只有授权的用户才能访问服务器。
在Linux系统中运行SSH,需要两个软件:一个是服务器端的软件,一个是客户端的软件。服务器端的软件叫做OpenSSH-Server,主要实现SSH服务器功能。它可以处理SSH消息并执行用户指令,以实现远程登录功能。客户端的软件叫做SSH-Client,会根据服务器端提供的信息将用户指令加密,并且可以认证服务器的身份。
2.SSH所需的RPM包
OpenSSH所需的RPM包有5个:
包名 | 说明 |
---|---|
openssh-7.4p1-21.el7.x86_64.rpm | openssh核心文件 |
openssh-askpass-7.4p1-21.el7.x86_64.rpm | ⽀持对话框窗⼝ 显示 X系统 |
openssh-clients-7.4p1-21.el7.x86_64.rpm | 客户端软件包 |
openssh-keycat-7.4p1-21.el7.x86_64.rpm | openssh公钥,私钥文件 |
openssh-server-7.4p1-21.el7.x86_64.rpm | 服务器端软件包 |
3.两台机器实现互信
- 执行命令生成公用key(两台机器都要执行)
~]$ ssh-keygen -t rsa -P ''
~]$ cd ~/.ssh
~]$ cat id_rsa.pub >>authorized_keys
- 想要免密登录哪台服务器,就将自己的id_rsa.pub内容,拷贝到想要登录服务器的authorized_keys文件中
- 文件和目录权限设置
id_rsa:私钥,相当于‘锁’,文件权限:600(不能更改)
id_rsa_pub:公钥,相当于‘钥匙’,文件权限:644(不能更改)
authorized_keys:认证文件,记录别人(对端)给你的公钥,文件权限:600(不能更改)
known_hosts:指纹文件,记录首次SSH互信通讯时,对方的指纹信息,文件权限:600(不能更改)
用户目录权限:755或700,绝对不能是77x,否则无论你如何设置每次ssh通讯都要求你输入密码
.ssh目录权限:755或700
- 进行ssh免密登录
第一次ssh登录时还会要求输入密码,之后就免密了。
4.常见问题及处理
问题描述:ssh通讯时还是要求输入密码,返回日志信息为:Authentication refused:bad ownership or modes
处理方法:检查目录及文件权限,将不符合要求的权限按要求进行设置即可。
这篇关于Linux上实现ssh免密通讯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!