解放你的双手:VS Code SSH 免密连接终极指南
引言
在现代软件开发中,远程开发已成为常态。无论是连接到云服务器、公司内部服务器,还是树莓派等设备,我们经常需要通过 SSH(Secure Shell)协议连接到远程机器。而对于使用 VS Code 的开发者来说,强大的 Remote – SSH 扩展使得在本地 VS Code 窗口中直接编辑远程文件、运行终端命令变得如同操作本地文件一样便捷。
然而,频繁地连接远程服务器,每次都需要输入密码,这无疑是一件繁琐且耗时的事情。特别是当你需要在多个服务器之间切换,或者连接因网络波动中断后需要重新连接时,重复输入密码的动作会极大地打断你的工作流,降低效率。
有没有一种方法,可以让我们在连接远程服务器时不再需要输入密码?答案是肯定的:SSH 密钥认证。通过设置 SSH 免密连接,我们可以利用密钥对的安全机制,实现无需密码即可快速、安全地连接到远程主机。
对于 VS Code 用户而言,配置 SSH 免密连接不仅能省去输入密码的麻烦,更能与 Remote – SSH 扩展完美结合,提供极致流畅的远程开发体验。想象一下,你只需要点击一下或者选择一个配置好的远程主机,VS Code 瞬间就能连接上去,无需任何密码输入,直接开始工作——这正是我们追求的效率与便捷。
本文将带你一步步详细了解 SSH 密钥认证的原理,并手把手教你如何在本地机器(通常是你的开发机)和远程服务器上配置 SSH 密钥,最终实现在 VS Code 中使用 SSH 免密连接,彻底解放你的双手。我们将涵盖密钥对生成、公钥传输、权限设置、SSH 代理以及 VS Code 配置等各个环节,力求全面、深入,让你彻底掌握这项实用技能。
为什么选择 SSH 密钥认证?
在深入配置之前,让我们简要了解为什么 SSH 密钥认证是免密连接的首选方式,以及它相较于传统的密码认证有何优势:
- 安全性更高: 密钥对通常使用非常长的、复杂的数学算法生成,破解难度远大于暴力破解普通密码。即使你的私钥被窃取,如果私钥设置了密码(passphrase),攻击者仍然需要知道密码才能使用私钥。而密码认证则容易受到字典攻击、暴力破解等方式的威胁。
- 自动化友好: 密钥认证无需人工交互输入密码,非常适合自动化脚本、定时任务或者像 VS Code Remote – SSH 这样的工具进行连接。
- 管理更灵活: 你可以为不同的目的或不同的机器生成不同的密钥对,方便管理和撤销访问权限。
- 用户体验更佳: 一旦设置完成,连接过程变得极其迅速和无缝。
SSH 密钥认证基于公钥加密原理。它涉及一对密钥:一个私钥 (private key) 和一个公钥 (public key)。
- 私钥: 这就是你的“身份证”或“钥匙”。它必须严格保存在你的本地机器上,并且绝不能泄露给任何人。私钥通常需要设置一个密码(passphrase)进行加密,以增加一层保护。
- 公钥: 这就是你的“门锁”或“验证码”。你可以将其分发给任何你想要连接的远程服务器。公钥本身不包含任何敏感信息,即使被截获也无法用于建立连接。
连接过程大致是这样的:当你尝试使用密钥连接到远程服务器时,SSH 客户端会向服务器发送你的公钥副本。服务器会检查其存储的授权公钥列表(通常在用户主目录下的 ~/.ssh/authorized_keys
文件中),看是否有匹配的公钥。如果找到匹配项,服务器会生成一个随机数据,并使用你的公钥进行加密,然后将加密后的数据发送回客户端。客户端接收到数据后,会尝试使用本地保存的私钥进行解密。如果解密成功,说明你确实拥有与服务器上公钥匹配的私钥,服务器便允许连接,无需输入密码。
理解这个基本原理,有助于我们更好地进行后续的配置。
前提条件
在开始配置之前,请确保你具备以下条件:
- 本地开发机: 运行着你常用的操作系统(Windows, macOS, Linux)并安装了 VS Code。
- SSH 客户端: 你的本地机器需要安装并启用 SSH 客户端。大多数 Linux 和 macOS 系统自带 OpenSSH 客户端。在 Windows 上,Windows 10 及以上版本通常也自带 OpenSSH 客户端,你可以通过“应用和功能”->“可选功能”中查看和添加。
- 远程服务器: 你拥有连接权限的远程服务器,并且服务器上运行着 SSH 服务(sshd)。大多数 Linux 服务器默认安装并运行 OpenSSH 服务。
- 基本终端操作知识: 你需要能够在本地和远程机器上打开终端或命令行界面,并执行一些基本命令。
- VS Code Remote – SSH 扩展: 在 VS Code 中安装并启用 Remote – SSH 扩展。
配置步骤详解
整个 SSH 免密连接的配置过程主要分为以下几个核心步骤:
- 在本地机器生成 SSH 密钥对。
- 将本地生成的公钥复制到远程服务器。
- 在远程服务器上验证公钥是否已正确配置。
- 使用 VS Code 配置和建立 SSH 免密连接。
让我们一步步详细操作。
步骤 1:在本地机器生成 SSH 密钥对
这是整个过程的第一步,也是最关键的一步。你需要在你的本地开发机上生成一对新的 SSH 密钥。
打开你本地机器的终端或命令行界面。
执行以下命令:
bash
ssh-keygen -t rsa -b 4096 -C "你的邮箱或标识"
命令解释:
ssh-keygen
: 这是用于生成、管理和转换认证密钥的命令。-t rsa
: 指定密钥类型为 RSA。RSA 是目前广泛使用的一种公钥加密算法。你也可以选择更现代、通常更安全的算法,如ed25519
(ssh-keygen -t ed25519 -C "你的邮箱或标识"
)。对于大多数用途,RSA (4096位) 或 Ed25519 都是不错的选择。我们以 RSA 为例进行说明,Ed25519 的步骤是相同的,只是命令中的类型不同。-b 4096
: 指定 RSA 密钥的长度为 4096 位。这提供了比默认 2048 位更高的安全性。对于 Ed25519,不需要指定长度,因为它有一个固定的安全长度。-C "你的邮箱或标识"
: 添加一个注释到生成的公钥文件中。这个注释不会影响密钥的功能,但可以帮助你识别密钥的用途,特别是在authorized_keys
文件中管理多个公钥时。通常使用你的邮箱地址或机器名作为标识。
执行命令后,ssh-keygen
会引导你完成密钥生成过程,通常会有以下几个提示:
-
Enter file in which to save the key (…): 询问你希望将密钥保存在哪个文件中。默认路径是用户主目录下的
.ssh
子目录中,文件名为id_rsa
(私钥) 和id_rsa.pub
(公钥)。强烈建议接受默认路径,因为 SSH 客户端默认会在这个位置查找密钥。直接按回车即可。Enter file in which to save the key (/home/your_user/.ssh/id_rsa):
如果你之前已经生成过密钥,这里会提示文件已存在,并询问是否覆盖。如果你确定要生成新的密钥并且不使用旧的,可以选择覆盖。注意:覆盖将永久丢失旧密钥! 如果你不确定,可以先备份旧密钥或指定一个新的文件路径。
-
Enter passphrase (empty for no passphrase): 询问你是否要为私钥设置一个密码 (passphrase)。
Enter passphrase (empty for no passphrase):
- 设置密码 (推荐): 为私钥设置一个密码会增加安全性。即使你的私钥文件被泄露,攻击者也无法直接使用它,除非他们知道这个密码。每次使用这个私钥进行 SSH 连接时,你都需要输入一次这个密码。不过,结合 SSH 代理(后续会介绍),你可以在会话期间只输入一次密码。
- 不设置密码 (留空): 如果你希望完全实现“免密”,即连接时连私钥密码都不想输,那么这里可以直接按回车留空。但这意味着如果你的私钥文件泄露,任何人都可以直接使用它连接到你所有配置了该公钥的服务器,这会带来安全风险。只有在你充分理解并接受这种风险时才选择留空。
建议: 如果安全是首要考虑,设置一个强密码。如果你追求极致的便捷且能确保私钥文件的安全(例如,你的开发机有良好的物理安全和磁盘加密),可以考虑留空。
-
Enter same passphrase again: 如果你设置了密码,这里需要再次输入以确认。
Enter same passphrase again:
完成以上步骤后,ssh-keygen
就会生成密钥对,并显示类似以下的信息:
Your identification has been saved in /home/your_user/.ssh/id_rsa.
Your public key has been saved in /home/your_user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:......................... [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| .+B+=o |
| . o E+.. |
| = o oo |
| . O o. . |
| . S * =. |
| o + o = |
| + = * |
| + B . |
| =o. |
+----[SHA256]-----+
这意味着你的密钥对已成功生成。在默认路径下 (~/.ssh/
),你会找到两个文件:
id_rsa
(或id_ed25519
): 这是你的私钥文件。它的文件权限通常会被设置为只有文件所有者可读写 (chmod 600 ~/.ssh/id_rsa
),以防止其他用户访问。请务必保护好这个文件!id_rsa.pub
(或id_ed25519.pub
): 这是你的公钥文件。这是一个纯文本文件,你可以安全地查看和分享其内容。
重要: 检查私钥文件的权限。确保私钥文件的权限是 600
(即只有文件所有者有读写权限)。在 Linux/macOS 终端中使用 ls -l ~/.ssh/id_rsa
查看。如果权限不对,可以使用 chmod 600 ~/.ssh/id_rsa
命令进行修正。SSH 客户端会拒绝使用权限过于开放的私钥文件。
步骤 2:将本地生成的公钥复制到远程服务器
现在你已经有了公钥 (id_rsa.pub
),下一步是把它放到你想要免密连接的远程服务器上的特定位置。远程服务器上的 SSH 服务会查找这个文件来验证你的身份。
公钥需要添加到远程服务器上你想登录的那个用户的家目录下的 .ssh/authorized_keys
文件中。
最简单、最安全的方法是使用 ssh-copy-id
命令(如果远程服务器和你的本地机器都支持的话)。
在本地终端执行以下命令:
bash
ssh-copy-id user@remote_host
命令解释:
ssh-copy-id
: 这是一个专门用于将你的公钥复制到远程服务器authorized_keys
文件中的脚本。它会为你处理很多细节,比如创建.ssh
目录、设置正确的权限等。user
: 你在远程服务器上希望免密登录的用户名。remote_host
: 远程服务器的 IP 地址或主机名。
执行此命令后,它会提示你输入该远程用户在远程服务器上的密码(这是你最后一次手动输入密码连接这台服务器了!)。输入正确密码后,ssh-copy-id
会将你的公钥内容读取出来,然后通过 SSH 连接到远程服务器,在 ~/.ssh/authorized_keys
文件中添加(或创建并添加)你的公钥。
“`bash
The authenticity of host ‘remote_host (X.X.X.X)’ can’t be established.
ECDSA key fingerprint is SHA256:……………………..
Are you sure you want to continue connecting (yes/no)? yes # 如果是第一次连接,会提示确认主机指纹
/usr/bin/ssh-copy-id: INFO: Source of key(s): “/home/your_user/.ssh/id_rsa.pub”
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you’re prompted now it’s to install the new keys
user@remote_host’s password: # 输入远程用户的密码
Number of key(s) added: 1
Now try logging into the machine, with: “ssh ‘user@remote_host'”
and check to make sure that only the key(s) you wanted were added.
“`
看到类似“Number of key(s) added: 1”的信息,说明公钥复制成功。
如果 ssh-copy-id
不可用:
在某些情况下,你的本地机器或远程服务器可能没有安装 ssh-copy-id
。这时你需要手动完成公钥的复制。
-
在本地机器上,打开你的公钥文件 (
~/.ssh/id_rsa.pub
),将里面的全部内容复制到剪贴板。公钥内容类似这样:ssh-rsa AAAA.................................................... [email protected]
-
使用密码连接到远程服务器:
bash
ssh user@remote_host输入密码登录。
-
在远程服务器上,创建或编辑
~/.ssh/authorized_keys
文件。首先,确保
.ssh
目录存在且权限正确(如果不存在则创建):bash
mkdir -p ~/.ssh
chmod 700 ~/.ssh然后,创建或编辑
authorized_keys
文件,并将你的公钥内容粘贴进去。如果文件已存在,请将你的公钥粘贴到新的一行。注意:一行一个公钥。不要删除文件中已有的其他公钥。使用文本编辑器(如
nano
或vim
)打开文件:“`bash
nano ~/.ssh/authorized_keys或者
vim ~/.ssh/authorized_keys
“`将你从本地复制的公钥内容粘贴到文件末尾的新一行。保存并关闭文件。
最后,设置
authorized_keys
文件的正确权限。这是非常重要的一步,如果权限设置不正确,SSH 服务器会因为安全原因忽略该文件。bash
chmod 600 ~/.ssh/authorized_keys重要: 确保远程服务器上用户的家目录 (
~
)、.ssh
目录以及authorized_keys
文件的权限都是安全的。通常,用户家目录权限应该是 755 或 700,.ssh
目录权限是 700,authorized_keys
文件权限是 600。如果权限不正确,即使公钥内容对了,免密连接也可能失败。可以使用ls -ld ~ ~/.ssh ~/.ssh/authorized_keys
查看权限。
步骤 3:在远程服务器上验证公钥是否已正确配置
在你尝试在 VS Code 中连接之前,最好先在本地终端验证一下 SSH 免密连接是否已经生效。
在你的本地终端,执行以下命令:
bash
ssh user@remote_host
- 如果你没有为私钥设置密码 (passphrase),你应该会直接登录到远程服务器,无需任何密码输入。
- 如果你设置了私钥密码 (passphrase),你应该会看到提示输入私钥密码的提示,而不是远程用户的登录密码。输入正确的私钥密码后即可登录。
如果你仍然被要求输入远程用户的登录密码,说明 SSH 密钥认证没有成功。可能的原因包括:
- 公钥没有正确复制到远程服务器的
~/.ssh/authorized_keys
文件中。 - 远程服务器上
.ssh
目录或authorized_keys
文件的权限不正确。 - 远程服务器上的 SSH 服务 (
sshd
) 配置禁用了公钥认证(这种情况较少见,默认是开启的)。 - 你的本地私钥文件权限不正确 (
chmod 600 ~/.ssh/id_rsa
)。 - 你在尝试连接的用户与你复制公钥时使用的用户不一致。
- 远程服务器空间不足,导致无法写入
authorized_keys
文件。
你可以尝试在本地使用 ssh -v user@remote_host
命令查看详细的连接过程输出,其中会包含 SSH 客户端尝试认证的详细信息,帮助你定位问题。
步骤 4:使用 VS Code 配置和建立 SSH 免密连接
现在 SSH 免密连接已经在终端中验证成功,是时候在 VS Code 中利用它了。VS Code 的 Remote – SSH 扩展会利用你系统配置好的 SSH 客户端。
VS Code Remote – SSH 扩展最方便的使用方式是配置 SSH Config 文件 (~/.ssh/config
)。这个文件允许你为不同的远程主机设置别名、指定用户名、端口、私钥文件路径等各种 SSH 连接参数。VS Code 会读取这个文件并自动列出你配置的主机。
-
打开 VS Code 的 SSH Config 文件:
- 打开命令面板 (View -> Command Palette… 或按
F1
)。 - 输入
Remote-SSH: Open SSH Configuration File...
并选择该命令。 - VS Code 会询问你要打开哪个配置文件。选择通常位于用户主目录下的
.ssh/config
文件。如果没有该文件,VS Code 会提示你创建。
- 打开命令面板 (View -> Command Palette… 或按
-
编辑 SSH Config 文件:
~/.ssh/config
文件的格式是由一系列主机配置块组成,每个块以Host
关键字开始。为你的远程主机添加一个新的配置块:sshconfig
Host your_remote_alias
Hostname remote_host_or_ip
User your_remote_user
# Port 22 # 如果SSH端口不是默认的22,需要指定
# IdentityFile ~/.ssh/id_rsa # 如果你使用了非默认的私钥文件路径或名称
# AddKeysToAgent yes # 如果你想在第一次输入密码后将私钥添加到SSH Agent
# ForwardAgent yes # 如果你需要将本地SSH Agent转发到远程服务器配置解释:
Host your_remote_alias
: 这是你为这台远程主机设置的别名。在 VS Code 和终端中,你今后就可以直接使用这个别名来代替user@host
。选择一个容易记住的别名,例如服务器的角色或名称(如my-web-server
,dev-vm
)。Hostname remote_host_or_ip
: 远程服务器的实际 IP 地址或主机名。User your_remote_user
: 连接远程服务器时使用的用户名。Port 22
: SSH 服务的端口。如果远程服务器使用非默认端口(例如 2222),你需要取消注释并将其设置为正确的端口号。IdentityFile ~/.ssh/id_rsa
: 指定用于认证的私钥文件路径。如果你的私钥文件不是默认的~/.ssh/id_rsa
或~/.ssh/id_ed25519
,或者你有多个私钥需要指定连接到此主机时使用哪个,就需要取消注释并指定正确的路径。如果你只使用默认密钥,通常可以省略这一行。AddKeysToAgent yes
: 结合 SSH 代理使用。如果私钥设置了密码,设置此选项会在你第一次输入私钥密码成功后,将该私钥添加到 SSH 代理中。代理会缓存解密后的私钥,之后你再次连接时就无需输入密码,直到代理关闭或私钥从代理中移除。ForwardAgent yes
: 将本地 SSH 代理的功能转发到远程服务器。这在你需要从远程服务器再 SSH 连接到其他服务器时非常有用,可以避免在中间服务器上存储私钥或重复输入密码。注意:使用ForwardAgent
需要谨慎,如果远程服务器被入侵,攻击者可能利用你的代理进行进一步连接。
填写完主机信息后,保存
config
文件。 -
在 VS Code 中连接远程主机:
- 打开命令面板 (
F1
)。 - 输入
Remote-SSH: Connect to Host...
并选择该命令。 - VS Code 会读取你的
.ssh/config
文件,并列出你在其中配置的所有主机别名。 - 选择你刚刚添加的远程主机别名(例如
your_remote_alias
)。
VS Code 现在会尝试使用 SSH 连接到远程服务器。
- 如果你没有为私钥设置密码,VS Code 应该会直接连接成功,并在新的窗口中打开远程文件系统。
- 如果你为私钥设置了密码,VS Code 会弹出一个输入框,要求你输入私钥的密码 (passphrase)。输入密码后,连接成功。
一旦连接成功,VS Code 的左下角会显示
SSH: your_remote_alias
,并且你可以像操作本地文件一样浏览、编辑远程文件,并在集成终端中运行远程命令。 - 打开命令面板 (
恭喜你!现在你已经成功设置了 VS Code 的 SSH 免密连接。
SSH 代理 (SSH Agent) 的使用
如果你为私钥设置了密码 (passphrase),你可能会注意到每次打开一个新的 VS Code 窗口或者一段时间不活动后重新连接时,都需要再次输入私钥密码。SSH 代理 (ssh-agent) 就是为了解决这个问题而存在的。
SSH 代理是一个后台运行的程序,它会存储你解密后的私钥。当你尝试进行 SSH 连接时,SSH 客户端会首先联系 SSH 代理,请求使用相应的私钥进行认证。如果代理中有所需的私钥,它就会代表客户端完成认证过程,而你无需再次输入私钥密码。
如何使用 SSH 代理:
-
启动 SSH 代理: 在大多数 Linux/macOS 系统中,在你登录会话时,SSH 代理通常会自动启动。如果没有,或者你想手动启动,可以在终端中运行:
bash
eval "$(ssh-agent -s)"这条命令会输出一些环境变量设置,然后
eval
命令会执行这些设置,将当前的终端会话关联到新启动的 SSH 代理。 -
将私钥添加到代理: 启动代理后,你需要将你的私钥添加到代理中。
“`bash
ssh-add ~/.ssh/id_rsa或
ssh-add ~/.ssh/id_ed25519
“`如果你的私钥设置了密码,
ssh-add
会提示你输入一次私钥密码。输入正确密码后,私钥就会被添加到代理中。你可以使用
ssh-add -l
命令查看当前代理中已添加的私钥列表。bash
ssh-add -l要从代理中移除所有私钥,可以使用
ssh-add -D
。bash
ssh-add -D在 VS Code 中与 SSH 代理结合:
如前所述,在
~/.ssh/config
文件中为特定的 Host 添加AddKeysToAgent yes
选项,可以让 VS Code 在你第一次连接该主机并输入私钥密码成功后,自动将该私钥添加到当前正在运行的 SSH 代理中。这样,在同一个 VS Code 会话期间,再次连接该主机或连接使用相同私钥的其他主机时,就无需重复输入私钥密码了。对于长期运行的开发会话,使用 SSH 代理可以极大地提升便捷性。在 macOS 上,私钥甚至可以被添加到系统的 Keychain 中,实现长期缓存,无需每次终端会话都手动添加。在 Windows 上,较新版本的 OpenSSH 客户端也支持类似的代理功能。
安全性考量
虽然 SSH 免密连接带来了极大的便利,但安全性不容忽视:
- 保护你的私钥: 这是最重要的。私钥是你的身份凭证,绝不能泄露。确保私钥文件 (
~/.ssh/id_rsa
) 的权限仅为所有者可读写 (chmod 600
)。不要将私钥上传到公共代码仓库或分享给他人。 - 为私钥设置强密码 (Passphrase): 这是保护私钥的最佳实践。即使私钥文件被盗,没有密码也无法使用。配合 SSH 代理,可以做到“一次输入,多次使用”。
- 定期审查
authorized_keys
文件: 定期检查远程服务器上的~/.ssh/authorized_keys
文件,确保只有你授权的公钥存在。移除不再需要的或来源不明的公钥。 - 限制公钥的功能 (Optional): 在
authorized_keys
文件中,可以在公钥前面添加一些选项来限制该密钥的功能,例如限制源 IP、限制执行的命令等。这适用于需要提供有限访问权限的场景,但对于个人日常开发用途通常不需要。 - 禁用密码认证 (Optional): 在远程服务器的 SSH 服务配置 (
/etc/ssh/sshd_config
) 中,可以完全禁用密码认证 (PasswordAuthentication no
),只允许密钥认证。这进一步提高了安全性,因为攻击者无法通过暴力破解密码的方式登录。修改配置后需要重启 SSH 服务 (sudo systemctl restart sshd
或sudo service ssh restart
)。在禁用密码认证之前,请务必确保你的密钥认证已经设置成功并且可以正常登录,否则你可能会被锁定在服务器之外! - SSH Agent Forwarding 的风险: 如前所述,
ForwardAgent yes
选项虽然方便,但也存在风险。只在必要时使用,并确保你转发到的服务器是可信的。
常见问题与故障排除
- 连接时依然提示输入远程用户密码:
- 检查公钥是否已正确添加到远程服务器的
~/.ssh/authorized_keys
文件中(确保内容完整,没有换行错误)。 - 检查远程服务器上
.ssh
目录 (chmod 700
) 和authorized_keys
文件 (chmod 600
) 的权限是否正确。 - 检查本地私钥文件 (
~/.ssh/id_rsa
) 的权限是否正确 (chmod 600
)。 - 确认你连接的用户名 (
User
在config
文件中) 与远程服务器上authorized_keys
文件所属的用户一致。 - 在本地使用
ssh -v user@remote_host
或ssh -v your_remote_alias
查看详细的连接过程输出,查找失败原因。
- 检查公钥是否已正确添加到远程服务器的
- 连接时提示输入私钥密码 (Passphrase),但我想完全免密:
- 这意味着你在生成密钥对时设置了密码。如果你想完全免密(包括私钥密码),你需要生成一个新的密钥对,并在提示设置密码时留空。然后将新的公钥复制到远程服务器(覆盖或替换旧的公钥)。请务必理解并接受不设置私钥密码带来的安全风险。
- 或者,使用 SSH 代理,只需在会话开始时输入一次私钥密码,之后就可以免密连接。
- VS Code 列出的主机别名不对或没有列出:
- 检查你是否在正确的
.ssh/config
文件中进行了修改(通常是用户主目录下的~/.ssh/config
)。 - 确保
config
文件格式正确,每个主机块以Host
开头。 - 重启 VS Code 有时可以解决读取配置的问题。
- 检查你是否在正确的
- Permission denied (publickey): 这通常意味着 SSH 服务器尝试了公钥认证但失败了。最常见的原因是远程服务器上的
.ssh
目录或authorized_keys
文件权限设置不正确,或者authorized_keys
文件中没有包含你的公钥,或者公钥内容有误。 - VS Code 连接成功但终端无法正常使用或出现其他奇怪问题: 确保远程服务器的操作系统和架构受 VS Code Remote – SSH 扩展支持。有些极老的系统或特殊的精简版系统可能需要安装额外的兼容库。
总结
通过本文的详细步骤,你应该已经成功地为 VS Code 设置了 SSH 免密连接。从生成安全的 SSH 密钥对,到将公钥授权给远程服务器,再到利用 ~/.ssh/config
文件在 VS Code 中简化连接过程,每一个环节都对实现流畅的远程开发体验至关重要。
掌握 SSH 密钥认证不仅限于 VS Code,它是 Linux/Unix 世界中进行安全远程访问和自动化操作的基础。一旦你习惯了免密连接带来的高效,你将再也无法忍受每次输入密码的繁琐。
结合 VS Code 强大的远程开发能力和 SSH 免密连接的便捷性,你现在可以更加专注于编码本身,让技术工具真正成为提升效率的助力,而不是阻碍。开始享受无缝、高效的远程开发新体验吧!