多个客户端共用SSH公私钥

SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

一、使用方法

1. 首先我们把之前生成好的(需要共用的公钥和私钥)id_rsaid_rsa.pub拷贝到云端或U盘中备份

2. 在新的终端上执行如下命令生成私钥

这样会在新的终端~/.ssh/中生成新的id_rsaid_rsa.pub

3. 用备份好的(需要共用的)id_rsaid_rsa.pub文件,覆盖刚才生成的公私钥文件,确保复制后的文件权限为id_rsa是600,id_rsa.pub是644

二、SSH登录原理和过程

SSH需要生成公钥Public Key和私钥Private Key, 常用的是使用RSA算法生成id_rsa.pub和id_rsa。
公钥Public Key(id_rsa.pub)是可以暴露在网络传输上的,是不安全的。而私钥Private Key(id_rsa)是不可暴露的,只能存在客户端本机上。

所以公钥Public Key(id_rsa.pub)的权限是644,而私钥Private Key(id_rsa)的权限只能是600。如果权限不对,SSH会认为公钥Public Key(id_rsa.pub)和私钥Private Key(id_rsa)是不可靠的,就无法正常使用SSH登陆了。同时在服务端会有一个~/.ssh/authorized_keys文件,里面存放了多个客户端的公钥Public Key(id_rsa.pub),就表示拥有这些Public Key的客户端就可以通过SSH登陆服务端。

客户端发出公钥登陆的请求,服务端返回一段随机字符串。 客户端用私钥加密这个字符串,再发送回服务端,服务端用~/.ssh/authorized_keys里面存储的公钥Public Key去解密收到的字符串。如果成功,就表明这个客户端是可信的,客户端就可以成功登陆。

因此,只要多台电脑上的的公钥和私钥是一样的,对于服务端来说着其实就是同一个客户端。

weinxin
我的微信
扫一扫加我微信
echo

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: