美文网首页
SSH 密钥

SSH 密钥

作者: qingshuiting | 来源:发表于2019-03-01 19:43 被阅读0次

SSH 密钥

SSH的原理

信息传输需要安全,因此就需要对信息进行一个加密通信。已经有的加密通信方式分为两种:

  1. 对称加密

  2. 非对称加密

  • 对称加密

    对称加密非常简单,加密和解密是使用同一套密钥;
    为了方便理解加密,我们来举一个例子,为了传输字母“A”,我们使用一个方法(这个方法其实就是用密钥和原始数据进行计算得到)把“A”变为“a”。这个过程其实就是对明文“A”的一个加密的过程。

    对称加密使用同一个密钥(同一个方法)进行加密和解密。

  • 非对称加密

    ssh一种非对称加密的方法,有公钥和私钥两种密钥。

SSH 使用

SSH可以看做是一个C/S架构的应用软件,在Server端口默认为22

使用ssh登录 用户名为:username 机器节点为:host的服务器

ssh username@host

默认远程server端口不是22,为2222

ssh -p 2222 user@host

SSH 通信原理

ssh与server进行通信的时候,为了保证安全性,那么就不能直接使用明文进行沟通:比如client需要登录server,在验证密码的过程中不能使用明文。那么client需要对密码进行一个加密,server端接收到密文以后再对密文进行解密,对比密码的正确性。

加密方法:公钥加密,私钥解密。

通信过程:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

 The authenticity of host 'host (12.18.429.21)' can't be established.

 RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.

 Are you sure you want to continue connecting (yes/no)?

server的公钥会被保存在client节点的:ssh/knows_hosts中。表示了这些公钥对应的server都是client可信的(也有可能被中间人劫持,client认为hacker是可信的)

但是这种方法会被中间人攻击:所以client端在ssh server的时候就无法判断拿到的公钥是否是server端的还是某一个hacker节点的。

SSH 登录方式

SSH 密码登录

直接使用 ssh使用中的方式来登录,输入密码

SSH 免密钥

ssh免密钥登录又称为 “公钥登录”

“公钥登录”的原理:client将自己的公钥,放在server上。那么client在登录的时候,server会发送一个信息,client使用自己的私钥进行加密,让后发送给server,server使用对应的公钥解密进行对比,如果相同就表示server信任client,同意client进行无密钥登录。

生成公钥(ssh/id_rsa.pub)和私钥(ssh/id_rsa)

ssh-keygen

公钥发送到远程server上

ssh-copy-id user@host

server端会将client的公钥保存在 (ssh/authorized_keys)中,这样client端在进行ssh 登录server的时候就不需要进行密码登录的。这种方式称为“公钥”免密登录。

文件类型

  • id_rsa:私钥

  • id_rsa.pub:公钥

  • authorized_keys:授权客户端的公钥

  • known_hosts:保存的远程主机的host key,每一个远程主机都有一个安全的唯一的host key;这个内容实在client第一个ssh登录远程主机的的时候,client会进行提示。

相关文章

  • 如何使用终端创建SSH密钥

    找到现有的SSH密钥对 生成新的SSH密钥对 使用非默认SSH密钥对路径 部署密钥 全局共享部署密钥 GitLab...

  • GitHub - SSH密钥

    检查现有的SSH密钥 在生成SSH密钥之前,您可以检查是否有任何现有的SSH密钥。 打开Git Bash。输入ls...

  • 多台电脑共用一个ssh密钥

    一,将生成的ssh密钥复制出来 将生成的ssh密钥电脑的ssh文件复制出来放在新电脑的.ssh目录里 二,添加密钥...

  • cmder远程登录

    通过 SSH 口令方式连接 通过 SSH 密钥方式连接 生成密钥文件 输入 ssh-keygen -t rsa 按...

  • 生成ssh密钥并添加至github

    生成密钥 生成新的SSH key ssh-keygen -t rsa -C "邮箱"生成密钥.png 添加 ssh...

  • Git使用总结

    生成密钥 打开Git Bash, 运行 ssh-keygen 密钥生成空间 ~/.ssh/id_rsa _(...

  • Linux 配置 SSH 登陆

    先看看本地有没有ssh密钥对:~/.ssh/id_rsa 没有就用git bash 或者 cmd生成ssh密钥对:...

  • gitlab 配置ssh

    一. 生成ssh密钥对 查看本地已经有 密钥对ls ~/.ssh/ 查看是否生成一下两个文件 生成密钥对ssh-k...

  • github SSH key 设置

    生成SSH密钥过程: 1.查看是否已经有了ssh密钥:cd ~/.ssh如果没有密钥则不会有此文件夹,有则备份删除...

  • Linux设置SSH密钥以及别名无密码登录

    Linux设置SSH密钥以及别名无密码登录 首先生成使用密钥对 使用ssh-keygen生成密钥对 生成的文件默认...

网友评论

      本文标题:SSH 密钥

      本文链接:https://www.haomeiwen.com/subject/kpyjuqtx.html