MAC | linux | SSH 密钥验证

SSH密钥登陆过程

  1. 客户端通过ssh-keygen生成自己的公钥和私钥。
  2. 手动将客户端的公钥放入远程服务器的指定位置。
  3. 客户端向服务器发起 SSH 登录的请求。
  4. 服务器收到用户 SSH 登录的请求,发送一些随机数据给用户,要求用户证明自己的身份。
  5. 客户端收到服务器发来的数据,使用私钥对数据进行签名,然后再发还给服务器。
  6. 服务器收到客户端发来的加密签名后,使用对应的公钥解密,然后跟原始数据比较。如果一致,就允许用户登录。

在服务器中配置远程用户公钥(即客户端需要将自己的公钥配置在Linux服务器中)

  1. 查看本地是否已经生成了公钥

    ls ~/.ssh/id_*.pub

  2. 客户端生成本地公钥

    ssh-keygen

  3. 将客户端公钥手动上传到Linux服务器中

    ssh-copy-id 用户名@服务器IP地址

    • ssh-copy-id 命令用于将本地用户的公钥添加到远程服务器的 ~/.ssh/authorized_keys 文件中,从而实现 SSH 免密码登录。这样,您就可以通过私钥和公钥的方式进行身份验证,而无需输入密码。
    • 如果该文件不存在,它会自动创建该文件并将公钥添加到其中。
相关推荐
Byte不洛10 小时前
《Linux线程原理详解:进程、轻量级进程(LWP)与pthread实战》
linux·多线程
坐怀不乱杯魂10 小时前
Linux - 进程信号
linux·c++
fanruitian10 小时前
k8s pv pvc 持久化存储
java·linux·kubernetes
Trouvaille ~10 小时前
【Linux】进程信号(一):信号的快速认识与五种产生方式
linux·运维·网络·c++·操作系统·信号处理·中断
赵民勇10 小时前
使用GSocketService创建Socket服务详解
linux·服务器
闲过信陵饮~10 小时前
ubuntu24 安装向日葵远程软件报错
linux·运维·ubuntu
Dovis(誓平步青云)10 小时前
《优化算法效率的利器:双指针的原理、变种与边界处理》
linux·运维·算法·功能详解
188号安全攻城狮10 小时前
【PWN】HappyNewYearCTF_2_栈上变量覆写1
linux·运维·汇编·安全·网络安全
头发还没掉光光10 小时前
解决TCP粘包问题,使用C++实现TCP通信的自定义协议设计
linux·网络·c++·网络协议·tcp/ip
码农阿豪10 小时前
实战指南:高效批量测试SSH连接的最佳实践与避坑手册
运维·ssh