欢迎光临散文网 会员登陆 & 注册

在本地电脑上使用VSCode实现SSH免密码登录服务器步骤以及 Q&A

2023-07-17 10:59 作者:KXZ的无聊日常  | 我要投稿

要在本地电脑上使用VSCode实现SSH免密码登录服务器,您可以按照以下步骤进行配置:

1. 确保已经在本地电脑上生成了SSH密钥对。如果还没有,请使用以下命令生成密钥对:
   ```
   ssh-keygen -t rsa
   ```
   这将生成一个公钥(`id_rsa.pub`)和一个私钥(`id_rsa`)。

2. 将公钥添加到目标SSH服务器的`authorized_keys`文件中。可以使用以下命令将公钥添加到服务器:
   ```
   ssh-copy-id username@server_address
   ```
   需要将`username`替换为您在服务器上的用户名,将`server_address`替换为服务器的地址。输入此命令后,将需要提供服务器密码。

3. 确保本地电脑已安装了VSCode,并在VSCode中安装了"Remote - SSH"扩展。如果未安装,请打开VSCode,转到扩展面板,搜索并安装"Remote - SSH"扩展。

4. 打开VSCode,点击左侧的远程连接图标(绿色电源按钮)。

5. 在下拉菜单中选择"Remote-SSH: Connect to Host..."。

6. 在弹出的输入框中,输入服务器地址和用户名,格式为:`username@server_address`。按回车键继续。

7. VSCode将尝试使用您在第1步中生成的私钥进行连接。如果私钥文件不在默认位置(`~/.ssh/id_rsa`),它将提示您选择私钥文件的路径。选择正确的私钥文件并按回车键。

8. 如果一切顺利,VSCode将建立与服务器的SSH连接,并在VSCode窗口中显示服务器文件系统的内容。

现在,可以在VSCode中直接通过SSH连接到服务器,而无需每次输入密码。



Q1:第一步中生成SSH密钥对是使用服务器还是本地电脑

A1:对于SSH免密码登录服务器,生成SSH密钥对的步骤是在本地电脑上进行的,而不是在目标服务器上。

在第一步中,您需要在本地电脑上生成SSH密钥对。这将生成一个公钥和一个私钥。公钥将被添加到目标SSH服务器的`authorized_keys`文件中,以实现免密码登录。私钥将留在本地电脑上,用于建立与服务器的安全连接。

请确保在本地电脑上执行`ssh-keygen`命令来生成SSH密钥对,而不是在服务器上执行此命令。


Q2:第二步骤中可以加上端口号吗

A2:是的,第二步中您可以在服务器地址后面加上端口号。您可以按照以下格式指定服务器地址和端口号:

```
ssh-copy-id -p port_number username@server_address
```

将 "port_number" 替换为目标服务器的实际端口号,"username" 替换为您在服务器上的用户名,"server_address" 替换为服务器的地址。

例如,如果您的服务器端口号是 2222,用户名是 "user1",服务器地址是 "example.com",那么命令将是:

```
ssh-copy-id -p 2222 user1@example.com
```

这样,公钥将被复制到目标服务器上的 `authorized_keys` 文件中,并使用指定的端口号建立SSH连接。


Q3:出现错误:ssh-copy-id : 无法将“ssh-copy-id”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径, 请确保路径正确,然后再试一次。 

A3:在Windows PowerShell中,`ssh-copy-id`命令不可用。但是,您可以尝试使用以下替代方法将公钥复制到目标服务器的`authorized_keys`文件中:

1. 在本地电脑上,将公钥内容复制到剪贴板中。您可以使用以下命令打开公钥文件并复制其内容:
   ```
   Get-Content ~/.ssh/id_rsa.pub | Set-Clipboard
   ```

2. 打开远程服务器的SSH终端连接。您可以使用SSH工具(如PuTTY)或其他终端工具连接到目标服务器。

3. 在远程服务器的终端上,使用文本编辑器(如vi或nano)打开`~/.ssh/authorized_keys`文件。如果该文件不存在,则可以创建一个新文件。

4. 将剪贴板中的公钥内容粘贴到打开的文件中,并保存文件。

5. 确保`~/.ssh/authorized_keys`文件的权限设置正确。使用以下命令设置适当的权限:
   ```
   chmod 600 ~/.ssh/authorized_keys
   ```

完成上述步骤后,您应该已经将公钥成功添加到目标服务器的`authorized_keys`文件中,从而实现了免密码登录。

请注意,这些命令示例假定您正在使用类Unix系统(如Linux或macOS)和PowerShell终端。如果您使用不同的操作系统或终端,请相应地调整命令。


在本地电脑上使用VSCode实现SSH免密码登录服务器步骤以及 Q&A的评论 (共 条)

分享到微博请遵守国家法律