Linux远程链接(SSH)

本文详细介绍SSH服务的工作原理,包括SSH-keygen生成公钥和私钥的过程,以及ssh-copy-id命令如何实现公钥的远程复制,从而实现SSH的免密登录。同时,解析了非免密和免密登录的不同认证流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSH简介

ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。

  1. ssh-keygen
  • 简介
    ssh-keygen 可用来生成ssh公钥认证所需的公钥和私钥文件。一般是在~/.ssh 目录下执行该命令,如果是想把密钥统一管理则可以自定义目录,之所以放在目录 ~/.ssh下是因为该目录为用户私有目录,root用户以外的人是看不到的。默认生成私钥文件名id_rsa,公钥文件id_rsa.pub。
    备注:rsa是一种非对称加密算法,aes是一种对称加密算法
  • ssh-keygen实例
    (1):不带任何参数
    在这里插入图片描述
    解释:
    A: 直接输入ssh-keygen命令,不带任何参数,默认使用rsa非对称加密
    B:输入自定义文件名,如果直接回车则生成默认文件名rsa rsa.pub
    C:対生成的私钥文件加密,最少五位,直接回车则默认不加密
    D:确认C处输入的密码
    E:图中输入了自定义文件名test,所以这里生成了连个文件test私钥,test.pub公钥
    备注:ssh-keygen有很多带参数的生成方式,具体可以查看其它资料了解。
  1. ssh-copy-id
  • 简介
    ssh-copy-id - 将你的公共密钥填充到一个远程机器上的authorized_keys文件中(即:本地执行该命令,可以把刚大生成的公钥文件内容提取出来,发送到远程主机的authorized_keys文件中,然后本地连接工具就可以用自己的私钥关联去免密登陆远程主机)。
  • 实例
    1:指定公钥文件发送到远程主机 在这里插入图片描述
    解释:
    A: 将本地公钥发送至远程主机。格式: ssh-copy-id -i 公钥文件名 远程主机用户名@远程主机地址
    B:直接yes即可
    C:输入远程主机用户名所对应的密码
    D:大功告成
    特别注意:
    在执行ssh-copy-id,通过-i指定公钥文件时,命令会检查当前公钥所在目录是否存在对应的私钥,如果不存在则报私钥不存在错误,如下:
    在这里插入图片描述
  1. 非免密登陆原理简介

非免密远程登录流程图
1.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。
2.Client使用这个公钥,将密码进行加密。
3.Client将加密的密码发送给Server端。
4.远程Server用自己的私钥,解密登录密码,然后验证其合法性。
5.若验证结果,给Client相应的响应。

  1. 免密登陆原理简介
    在这里插入图片描述
    1.Client将自己的公钥存放在Server上,追加在文件authorized_keys中。
    2.Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey®,然后将加密后信息发送给Client。
    3.Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
    4.Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
    5.Server端会最后比较Digest1和Digest2是否相同,完成认证过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值