通过Xshell连接远程服务器搞懂SSH非对称加密的实际应用

文章讲述了如何从使用Xshell和密码登录阿里云服务器转向使用SSH密钥登录腾讯云的轻量级服务器。SSH的非对称加密原理被提及,以及两种验证方式——口令登录和密钥登录的区别。重点介绍了密钥对的生成、公钥的上传到服务器以及在Xshell中配置密钥登录的步骤,确保无需密码即可远程连接。
摘要由CSDN通过智能技术生成

最近阿里云服务器即将到期,正好618入手了腾讯云很便宜的轻量级服务器,之前阿里云服务器远程控制都是用Xshell密码登录,这次腾讯云试了试SSH免密登录,还是很好用的,正好借这个机会研究了下SSH原理

SSH是“非对称加密”非常直观的一种应用,用了SSH能很好的加深对“非对称加密”的理解

SSH方式的远程连接通常有两种方式:口令登录和密钥登录,这里接用一位博主的解释可以很清晰的理解这两种方式的差异:

  • 口令验证登录
    • 服务器生成公钥和私钥。
    • 客户端发起连接请求,服务器将公钥发给客户端。
    • 客户端生成口令(服务器密码),并用服务器发来的公钥加密,发送给服务器。
    • 服务器通过私钥解密,拿到口令(服务器密码),如果正确则认证成功。
  • 密钥验证登录
    • 客户端生成公钥和私钥,将公钥提前部署在服务器上。
    • 客户端发起连接请求。
    • 服务器随机生成一个字符串,用本地的公钥加密,发送给客户端。
    • 客户端通过私钥解密,将解密后的字符串发送给服务器。
    • 服务器验证本地字符串和客户端发来的字符串的一致性,如果通过,则认证成功。

引用链接:SSH登录及其原理详解 - 知乎

Xshell连接采用的是密钥验证方式,所以我们需要按照以下几步来完成远程连接

1、想办法生成一个密钥对(公钥+私钥),方法有很多,windows可以直接用Xshell工具生成,linux用户可以用ssh-keygen命令生成,两个方法都很简单,网上很多,这里不做赘述。生成密钥对(两个文件)后,公钥后缀名是.pub,私钥后缀名是.pem

2、我们既然要使用密钥验证方式登录服务器,就需要将公钥文件放到服务器上去,私钥本地自行保管

  • 如果自己上传,服务器是linux的话,可以用命令cd ~/.ssh打开此目录,pwd看下是否存在authorized_keys文件,如果不存在则touch authorized_keys命令新建此文件,将步骤1生成的公钥用文本编辑器打开,复制到authorized_keys文件中
  • 我用腾讯云服务器,可以直接在平台操作,如下图位置进行创建,然后在服务器密钥设置中绑定此密钥即可自动将公钥上传到服务器,绑定后可以去服务器的~/.ssh/authorized_keys文件查看此公钥(注意此图中,也有创建新密钥选项,也可以通过这个方式实现步骤1生成密钥对,生成后会自动下载私钥)

3、密钥放到服务器后,就可以本地通过Xshell进行远程密钥登录了

  • 填好服务器地址,然后按照下图设置登录方式为Public Key

  • "用户密钥"选择咱们前面生成的私钥文件,密码填不填都行,这个密码在密钥登录方式中没有太大的意义了,如下图

  • 然后点击确认填写好用户名就行,这样就可以不输入密码实现远程连接服务器了

连接原理:

Xshell发起连接请求,远程服务器随机生成一个串,用服务器保存的公钥进行加密,返回给Xshell,Xshell用咱们选择的私钥进行解密,然后将解密的串发给远程服务器,远程服务器再通过公钥和算法计算出客户端返回的解密串是否和之前加密发给客户端的串原值一致,一致则验证通过。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值