1:windows主机上生成【私钥】【公钥】
1.1生成公钥时不设置额外密码
1.2生成公钥时设置额外密码【给外包人员使用的方法】
2:在linux服务器中添加【公钥】
3:本地vscode连接linux服务器的配置
操作流程如下
1.1本地终端中【生成免密登录】
ssh-keygen
windows主机中生成密匙【输入后直接回车3次,提示输入密码时请不要输入,否则使用免密登录时会出现提示输入密码】
1.2本地终端中【生成额外密登录】【给外包人员使用的方法】
#1 打开终端 cmd 中 生成 密匙 4096位
C:\Users\coocaa>ssh-keygen -t rsa -b 4096
#2输入保存密钥的文件 【mishi】
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\coocaa/.ssh/id_rsa): mishi
# 3输入密码短语(为空表示没有密码短语): 输入【Nila939^%&】
------------------------------------------------------------------------------------使用上面这种方法后,使用私钥连接也需要填写这里设置密码
生成的私钥【mishi】
生成的公钥【mishi.pub】
2在linux服务器中添加【公钥】
把公钥中的字符串复制到服务器中的【authorized_keys】文件中
密钥复制到"authorized_keys"文件中【换行保存】
/root/.ssh/authorized_keys
在linux中执行权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
authorized_keys文件是SSH公钥认证中非常重要的文件,它包含了允许无密码登录到该账户的公钥。因此,这个文件也应该是非常私密的,只允许文件所有者进行读写操作。
解释:
chmod 700 ~/.ssh
- `7`(即4+2+1)代表所有者(通常是用户本人)有读、写和执行权限。
- `0`代表所属组(即与文件所有者同组的用户)没有任何权限。
- `0`代表其他用户(即不属于文件所有者或所属组的用户)也没有任何权限。
chmod 600 ~/.ssh/authorized_keys
- `6`(即4+2)代表所有者有读和写权限。
- `0`代表所属组没有任何权限。
- `0`代表其他用户也没有任何权限。
执行这两个`chmod`命令,可以确保`~/.ssh`目录和`~/.ssh/authorized_keys`文件的安全性,防止其他用户(包括同一系统的其他用户和通过网络连接的远程用户)读取或修改这些敏感文件。
3:本地vscode连接linux服务器的配置
本地vscode连接linux服务器时会弹出配置信息,请按这个模板配置
本地的配置登录信息
User/coocaa/.ssh/config
Host 47.21.45.211
HostName 47.21.45.211
User root
Port 22
IdentityFile "C:\Users\coocaa\.ssh\id_rsa"
# Host 47.21.45.211 【标记这个主机的名字,在vscode中显示该主机的名字】
# HostName 47.21.45.211 【公网ip】
# User root 【用户名】
# Port 22 【默认端口22】
# IdentityFile "C:\Users\coocaa\.ssh\id_rsa" 【指定私钥文件的路径】
# IdentityFile C:\\Users\\coocaa\\.ssh\\id_rsa