参考文档:https://zhuanlan.zhihu.com/p/667236864
每次连接都需要输入密码未免有些麻烦,一台机器想要免密访问其他机器,需要把自己的公钥内容发送到别的机器的authorized_keys中去,并在本机config文件中配置私钥文件位置。
生成新的密钥对
使用命令
ssh-keygen生成新的密钥对。你可以选择在生成密钥对时为其指定不同的文件名。请注意,-f后的id_rsa_windows只是示例文件名,你可以根据需要选择其他文件名。
# 在 Windows 上 ssh-keygen -t rsa -b 2048 -f C:\Users\YourUsername\.ssh\id_rsa_windowsx输入命令后一路回车
2. 添加公钥到远程服务器
将生成的公钥(id_rsa_windows.pub的内容)添加到你远程服务器的authorized_keys文件中,以允许连接。
手动复制:手动复制公钥文件 (
id_rsa_windows.pub) 的内容,然后登录到远程服务器,并将内容粘贴到authorized_keys文件。如下是我生成的id_rsa_windows.pub文件内容:
在远程服务器上,authorized_keys文件通常存储在用户的.ssh目录中。具体路径可能为~/.ssh/authorized_keys。
如果你的.ssh目录或者authorized_keys文件不存在,你可以在服务器终端使用以下命令创建它:
# 创建目录 mkdir ~/.ssh # 进入目录 cd ~/.ssh # 创建 authorized_keys 文件 touch authorized_keys # 使用文本编辑器打开 authorized_keys 文件,并将你的公钥内容粘贴到其中 vim authorized_keys # 保存并关闭文本编辑器。不熟练使用终端,也可以使用VSCode的资源管理器直接创建,粘贴公钥后保存。
3. 配置 SSH 客户端:
将添加公钥到远程服务器后,最后一步便是配置你的主机。
打开你的 SSH 客户端(本机)配置文件(也就是前面生成的config文件,一般在C:\Users\YourUsername\.ssh\config),添加配置(IdentityFile私钥文件路径),以指定使用哪个私钥文件。下图红框为我添加的内容。
这样,当你使用 ssh 连接服务器时,SSH 客户端将自动选择相应的私钥文件,就可以实现免密登录了。