返回 主页

Vscode的SSH远程连接与开发

SSH (Secure Shell) 是一种用于安全登录远程系统的网络协议,也是访问远程 Linux 服务器最常 用、最安全的方式。

SSH 的工作原理

SSH 通过客户端-服务器模型运作,由一个客户端程序和一个名为 sshd 的 SSH 服务器程序组成。sshd 服务通常在 Linux 服务器启动时自动运行。如果遇到连接问题,或者 sshd 服务未运行,您可以在 Ubuntu 系统上使用以下命令启动它:

sudo systemctl start ssh

一些云服务提供商还提供基于浏览器的 Console 功能,这在 SSH 客户端配置错误或无法使用时,提供了一个便利的备用通道来访问服务器

ssh 配置

在您希望用于登录的本地机器上生成 SSH 密钥对。通常使用 ssh-keygen 命令,执行完毕后生成两个文件: id_rsa (私钥) 和 id_rsa.pub (公钥)。默认是在 .ssh 目录下。

ssh-keygen -t rsa -b 4096 -C "这是注释"

将公钥内容复制到远程服务器的 ~/.ssh/authorized_keys 文件的最后一行,以授权该密钥进行 SSH 登录. 在vsccode终端中使用ssh username@server_ip命令连接服务器,输入登录密码后,就可以使用SSH连接到服务器了.然后cd /etc/ssh 进入ssh配置文件夹,使用sudo nano sshd_config命令编辑sshd_config文件,找到以下,确保它们被正确配置:

PubkeyAuthentication yes # 启用公钥认证
AuthorizedKeysFile .ssh/authorized_keys # 指定存放公钥的文件路径
PasswordAuthentication no  # 禁止密码登录,增强安全性
PermitRootLogin yes # 允许root用户登录(根据需要设置为no以增强安全性)

在本地机器上编辑 ~/.ssh/config 文件,添加以下类似内容来配置 SSH 连接,示例配置如下.

Host myserver_name
    HostName server_公网ip
    User username
    IdentityFile ~/.ssh/id_rsa

Host dev-server
    HostName 192.168.1.10
    User devuser
    Port 2222
    IdentityFile ~/.ssh/dev_key

Host prod-server
    HostName example.com
    User admin
    Port 22
    IdentityFile ~/.ssh/prod_key
    ServerAliveInterval 60

ssh 连接/退出

# 连接到服务器
ssh myserver_name
# 或者直接使用 ssh 命令连接
ssh username@server_ip
# 如果使用了非默认端口,指定端口号
ssh -p 2222 devuser@192.168.1.10

# 退出 SSH 会话
exit

返回 主页