🎀 🌸

[筱玖笔记]remot-ssh远程服务器连接

[筱玖笔记]remot-ssh远程服务器连接

一、免密SSH登录配置

步骤1:生成SSH密钥对
在本地终端执行:

BASH
 
ssh-keygen -t ed25519 -C "your_email@example.com"
# 保持默认路径(/home/yourname/.ssh/id_ed25519)
# 设置空密码(直接回车两次)

步骤2:上传公钥到服务器

BASH
 
# 自动上传(需要输入一次密码)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip

# 或手动操作:
cat ~/.ssh/id_ed25519.pub | ssh user@server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

步骤3:配置SSH客户端
创建或修改本地 ~/.ssh/config

CONFIG
 
Host myserver
HostName server_ip
User your_username
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
# 保持连接
ServerAliveInterval 60
ServerAliveCountMax 5

验证连接

BASH
 
ssh myserver
# 应该直接进入服务器无需密码

二、自动打开项目网页配置

步骤1:配置VS Code调试器(以Node.js为例)
.vscode/launch.json 配置:

JSON
 
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Server",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/app.js",
"runtimeArgs": ["--nolazy"],
"serverReadyAction": {
"pattern": "Server running at (https?://[\\d.:-]+)",
"uriFormat": "%s",
"action": "openExternally"
}
}
]
}

步骤2:端口转发配置
在VS Code的远程窗口中:

  1. 按 F1 输入 Forward a Port
  2. 添加项目端口(如3000)
  3. 右键端口选择 Open in Browser

步骤3:自动化脚本(可选)
在项目根目录创建 .vscode/server.sh

BASH
 
#!/bin/bash
# 启动服务并自动打开浏览器
npm start &
sleep 5
xdg-open http://localhost:3000

步骤4:任务自动化配置
.vscode/tasks.json

JSON
 
{
"version": "2.0.0",
"tasks": [
{
"label": "Start Server",
"type": "shell",
"command": "${workspaceFolder}/.vscode/server.sh",
"isBackground": true,
"problemMatcher": []
}
]
}

三、验证配置

  1. 使用SSH连接远程服务器
  2. 打开项目文件夹
  3. 按 F5 启动调试
  4. 观察是否自动打开浏览器访问页面

常见问题排查

问题现象 解决方案
仍提示输入密码 检查服务器/etc/ssh/sshd_config是否开启 PubkeyAuthentication yes
浏览器未自动打开 检查调试控制台是否有URL匹配日志,调整serverReadyAction.pattern正则
端口无法访问 检查服务器防火墙 sudo ufw allow 3000
文件权限问题 执行 chmod 600 ~/.ssh/* 和 chmod 700 ~/.ssh

优化建议

  1. 安装 Remote - SSH 扩展的最新版本
  2. 使用端口转发浏览器扩展实现自动映射
  3. 配置VS Code自动同步本地与远程环境:
JSON
 
{
"remote.SSH.defaultExtensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
],
"remote.SSH.showLoginTerminal": true
}
本站代码模板仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容