1.ssh登录原理
-
非对称加密
非对称加密加密和解密用的不是同一套密钥,有两套密钥。私钥和公钥,私钥掌握在自己手里,公钥分发出去。公私钥进行加解密。公钥进行加密后,只能私钥解密。私钥加密后公钥可以解密。并且不能从公钥推出私钥。(RSA ECC是非对称加密)。
-
ssh登录中的公私钥
我们自己生成一对公钥和私钥,私钥保存到自己电脑上,公钥保存到linux服务器上面。使用ssh登录的时候。首先电脑和服务器建立连接,服务器使用公钥加密,将密文返回给本地电脑,本地电脑使用私钥解密,将解密后的信息返回给服务器.服务器判断信息是否相同。相同则建立连接。
2.ssh登录操作步骤
使用cmd或者终端执行下面命令
- 生成密钥对
cd C:\Users\X.ssh //X是用户名 .ssh目录没有就新建
ssh-keygen // 生成密钥对,况默认回车即可。如需修改参考下面
输入ssh-keygen:
第一个问题:生成的密钥文件名称是啥? 默认是id_rsa。生成多个密钥对的时候,我们需要改名
第二个问题是:生成的密钥密码是啥? 默认为空
第三个问题是:再次输入密钥密码?默认为空
回车后在.ssh目录下会有公钥和私钥,id_rsa是私钥 id_rsa.pub是公钥。切记保护好自己的私钥
2.将公钥上传到linux服务器
将公钥放用户家目录的.ssh下,.ssh目录没有就新建。
scp id_rsa.pub tom@192.168.146.128:.ssh // 使用scp命令将本地公钥id_rsa.pub上传到192.168.146.128服务器tom用户家目录的.ssh下。:后面是路径
3.将公钥追加到authorized_keys文件中
进入tom用户的.ssh目录下,执行下面命令将公钥追加到authorized_keys文件中。authorized_keys没有进新建.文件没有扩展名(touch authorized_keys)
cat id_rsa.pub >> authorized_keys // 将公钥追加到authorized_keys文件中
4.修改权限
一般情况下,我们不希望别人动我们的authorized_keys文件,所以我一般给authorized_keys权限为600.最外面的为.ssh目录为700。千万不要傻不啦叽的给777
chmod 600 authorized_keys
cd ..
chmod 700 .ssh/
5.重启ssh服务
systemctl restart sshd
6.配置本地文件
在我们 C:\Users\X.ssh目录下有config文件,(没有就新建,无扩展名)。我们可以配置登录的相关参数(如下),保存后
我们在cmd或终端输入 ssh op就可以免密登录服务器了
#别名 可以使用ssh op快捷登录
Host op
#服务器IP地址
HostName 192.168.77.1
#ssh端口
port 1510
# 登录时的用户名
User tom
#鉴权方式 使用公钥
PreferredAuthentications publickey
# 私钥路径
IdentityFile C:\Users\X.ssh\id_rsa