文章目录
一、生成 SSH 密钥对
在Windows上打开cmd,使用以下命令生成SSH密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 将
"your_email@example.com"
替换成你的邮箱即可,比如说:"123456@qq.com"
执行完之后会在当前用户的 C:\Users\YourUsername\.ssh\
目录下生成 id_rsa
和 id_rsa.pub
两个文件。注意,YourUsername 是你的 Windows 用户名。以我的为例,我的用户名为96066
,则:
二、将公钥复制到 Linux 服务器上
2.1 复制公钥
用记事本打开生成的公钥文件 id_rsa.pub
,复制公钥文件的内容(全部内容)
2.2 使用 SSH 登录到远程 Linux 服务器
新开一个cmd窗口,使用 SSH 登录到远程 Linux 服务器,使用如下命令:
ssh username@hostname
- 将
username
替换成你服务器的用户名 - 将
hostname
替换成你服务器的IP地址或域名
因为此时还没有配置完免密登录,那么它现在会提示你输入密码,输入正确即可连接服务器
2.3 创建 ./ssh 目录
在服务器上,确认登录用户的 .ssh
目录是否存在,如果不存在,则手动创建:
mkdir -p ~/.ssh
2.4 创建 authorized_keys 文件
在服务器上,确认登录用户的 authorized_keys
文件是否存在,如果不存在,则手动创建:
cd ~/.ssh
touch authorized_keys
2.5 添加公钥到 authorized_keys 文件
将刚刚在 2.1
复制的公钥文件的内容添加到 authorized_keys 文件中:
echo "your_id_rsa_pub_content" >> ~/.ssh/authorized_keys
- 将
"your_id_rsa_pub_content"
替换为"复制的公钥文件的内容"
2.6 设置权限
确保 .ssh
目录的权限设置为只有所有者可以读写:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
这样可以确保 SSH 正确读取你的公钥文件
三、测试 SSH 登录
在 Windows 下关闭之前打开的 cmd 窗口,新开一个cmd窗口,使用 SSH 重新尝试登录到远程 Linux 服务器,使用如下命令:
ssh username@hostname
- 将
username
替换成你服务器的用户名 - 将
hostname
替换成你服务器的IP地址或域名
因为此时已经配置完免密登录,那么它现在不会提示你输入密码,直接连接到服务器
此时使用VSCode连接Linux服务器时也不需要输入密码了~