网站首页 > 技术文章 正文
一、第一次登录远程主机流程
第一次ssh到远程主机时远程主机会发送它的公钥到客户端主机,客户机确认继续连接后会把远程主机的公钥保存到.ssh/known_hosts文件,下次再连接此远程主机时会去.ssh/known_hosts查看,如果是已经保存的公钥证明是信任主机,即不会告警并直接提示输入用户名密码登录。
二、密码登录流程
远程主机收到客户端请求后会把自己的公钥发送给客户端,客户端通过公钥加密之后将密码发送给远程主机,远程主机用密钥解密,密码如果正确则登录成功。
三、公钥登录(免密登录)流程
公钥登录原理就是客户端将自己的公钥存储到远程主机的.ssh/authorized_keys中,客户端发起登录时,远程主机会发送一段随机字符串给客户端,客户端用自己的私钥加密后重新发回远程主机,远程主机用存储的客户端公钥解密之后对比之前发送给客户端的字符串,相同的话即认为客户机认证,不在需要输入密码直接登录系统。
四、公钥登录配置
1、远程主机ssh配置
vi /etc/ssh/sshd_config
RSAAuthentication yes #启用RSA认证
PubkeyAuthentication yes #启用公钥认证
AuthorizedKeysFile .ssh/authorized_keys #公钥认证文件
2、在客户端生成公私钥文件
ssh-keygen -t rsa
一路回车之后在$HOME/.ssh/下就可以看到两个文件
-rw-------. 1 root root 1675 Oct 25 12:04 id_rsa #私钥
-rw-r--r--. 1 root root 391 Oct 25 12:04 id_rsa.pub #公钥
3、将客户端公钥追加到远程主机 .ssh/authorized_keys中
cat .ssh/id_rsa.pub | ssh root@xxx.xxx.xxx.xx 'cat >> .ssh/authorized_keys'
.ssh目录的权限必须是700
.ssh/authorized_keys文件权限必须是600
如果配置完成还是无法免密登录,检查权限,属组是否正确,被坑了几次了,切记~
猜你喜欢
- 2024-12-19 Linux基础知识之配置ssh互信 linux ssh互信原理
- 2024-12-19 git 配置ssh git配置ssh密钥有什么用
- 2024-12-19 git如何使用ssh更新或提交代码(windows)
- 2024-12-19 Linux 远程操作:用脚本实现自动化 SSH 任务
- 2024-12-19 SSH 的原理与应用 ssh基本原理
- 2024-12-19 ssh配置免密登录,生成密钥对含密码操作
- 2024-12-19 ssh密钥登录 Ssh密钥登录
- 2024-12-19 如何生成 PEM 格式的 SSH 密钥 ? pem生成key
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)