ssh免密登录

目录

免密登录原理

免密登录操作

注意


免密登录原理

ssh基于公钥的认证:免密登录

  1. 客户端要首先生成一对密钥(公钥和私钥)

  2. 把客户端的公钥需要你手动放到服务器上面(要手动的放到服务器,首先得知道这个服务器)

    这里就已经确保服务器是可信的。放到服务器的用户家目录的~/.ssh/authorized_keys

  3. 客户端请求服务器

  4. 服务器收到客户端的请求之后,先生成随机数random_server, 使用客户端放在authorized_keys这个文件中的公钥对随机数进行加密

    pubkey(random_server)发送给客户端

  5. 客户端有公钥和私钥,客户端收到这个加密的数据pubkey(random_server), 客户端使用私钥进行解密拿到random_server

    使用MD5(hash) 对random_server和sessionkey(会话密钥,在密钥交换步骤产生的)加密形成一个摘要digest1

    发送给服务器

  6. 服务器接收到digest1, 然后服务器本身自己使用之前协商过的MD5算法,自己也知道random_server, 也知道会话密钥sessionkey

    也是使用MD5算法对random_server sessionkey进行加密形成摘要digest2,最后去比较digest1 和 digest2是否相等

    如果相等,登录成功,如果不相等,登录失败。

免密登录操作

1.客户端产生公钥和私钥
  当前系统上本身支持的算法:

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
使用rsa这种算法:

产生公钥和私钥的命令:

[root@rhce ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  #默认存储路径,不需要输入,直接回车
Enter passphrase (empty for no passphrase):  #不需要密码(密码可以为空),直接回车
Enter same passphrase again: #直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IKIZhQjwslma218g/E7u3OQPjogvvZtmsfoZcRtDkXQ root@rhce
The key's randomart image is:
+---[RSA 2048]----+
|*...o.E          |
|oo  .o           |
|o + o .          |
| % o . .         |
|B + =   S        |
| o.= =           |
|..oo+ +          |
|..=@ B .         |
|oBO+B +..        |
+----[SHA256]-----+

去到/root/.ssh/这个路径查看是否生成

id_rsa:客户端的私钥

id_rsa.pub:客户端的公钥

使用公钥进行加密,使用私钥进行解密

cd /root/.ssh/
[root@rhce .ssh]# pwd
/root/.ssh
[root@rhce .ssh]# ls -l
total 12
-rw-------. 1 root root 1811 Jan 10 22:38 id_rsa
-rw-r--r--. 1 root root  391 Jan 10 22:38 id_rsa.pub
-rw-r--r--. 1 root root  177 Jan 10 22:15 known_hosts

 2.将我们的公钥存放在服务器端的authorized_keys这个文件中
公钥是id_rsa.pub,把这个公钥的内容放入服务器端authorized_keys文件中。(两种操作)1)直接使用命令:ssh-copy-id 主机名

[root@rhce .ssh]# ssh-copy-id root@192.168.247.128
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.247.128's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.247.128'"
and check to make sure that only the key(s) you wanted were added.

 2)直接将id_rsa.pub拷贝到服务器端,然后把id_rsa.pub的内容写入authorized_keys中
  将id_rsa.pub 拷贝到 服务器端
  scp id_rsa.pub 192.168.247.128:/root
  将id_rsa.pub的内容写入~/.ssh/authorized_keys
  cd /root
  cat id_rsa.pub >> ~/.ssh/authorized_keys

验证免密登录:

ssh root@192.168.247.128

不需要密码就可以登陆

注意

        ssh连接的时候,是需要指定用户的 ssh root@192.168.233.118, 可以是root用户也可以其他的普通用户。

​        连接的产生的公钥和私钥,authorized_keys,known_hosts这些文件都存储在我们用户家目录下的~/.ssh/

​        使用不同的用户登录,对应会在用户家目录产生.ssh这个目录

​       ​ 如果要配置免密登录(基于公钥的认证), 需要是两台Linux机器, 一台作为客户端,一台作为服务端。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值