使用密码登陆远端云服务器,进入~/.ssh
执行:
1 | ssh-keygen |
1 | Enter file in which to save the key (/home/eai/.ssh/id_rsa): <====== enter 确认 |
生成了两个文件:id_rsa(私钥),id_rsa.pub(公钥)
把公钥写入服务器
1 | cat id_rsa.pub authorized_keys |
设置一下文件的权限
1 | chmod 600 authorized_keys |
启用密钥验证
1 | vi /etc/ssh/sshd_config |
保证对应处为yes
1 | #启用密钥验证 |
关闭密码登陆
1 | vi /etc/ssh/sshd_config |
1 | #PasswordAuthentication yes 改为 |
重启ssh
1 | systemctl restart sshd.service |
查了一下ssh密钥登陆的原理
摘自图解SSH原理
- Client将自己的公钥存放在Server上,追加在文件authorized_keys中。
- Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client。
- Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
- Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
- Server端会最后比较Digest1和Digest2是否相同,完成认证过程。
总的来说就是非对称加密的相关原理
相关文章RSA算法原理(一)