2、ubuntu系统配置OpenSSH | 使用vscode或pycharm远程连接

 1、OpenSSH介绍

OpenSSH(Open Secure Shell)是一套基于SSH协议的开源工具,用于在计算机网络中提供安全的加密通信。它被广泛用于远程系统管理、文件传输和网络服务的安全隧道搭建,是保护网络通信免受窃听和攻击的重要工具。

1.1、核心功能

安全远程登录

  • ssh 命令:通过加密通道登录远程主机(如 ssh user@hostname)。

  • 替代不安全的Telnet和rlogin,防止密码和会话内容被截获。

文件传输

  • scp:加密的跨系统文件拷贝(如 scp file.txt user@host:/path)。

  • sftp:交互式加密文件传输(类似FTP的安全版本)。

端口转发(隧道)

  • 本地转发:将本地端口流量通过SSH隧道转发到远程服务器。

  • 远程转发:将远程服务器端口流量转发回本地。

  • 动态转发:创建SOCKS代理,灵活转发多种流量。

密钥管理

  • 支持公钥认证(无需每次输入密码),通过 ssh-keygen 生成密钥对。

  • 密钥可存储在 ~/.ssh/authorized_keys 中实现免密登录。

服务端支持

  • sshd:OpenSSH的服务端守护进程,监听默认端口22。

  • 通过 /etc/ssh/sshd_config 配置文件调整安全策略(如禁用密码登录)。

1.2、安全特性

  • 强加密算法:使用AES、ChaCha20等加密数据,Diffie-Hellman密钥交换确保会话安全。

  • 协议版本:推荐SSH-2(修复SSH-1的漏洞),默认禁用旧版协议。

  • 防中间人攻击:首次连接时记录主机指纹,后续验证防止伪装。

  • 审计与日志:详细日志记录(/var/log/auth.log 等)便于追踪访问行为。

1.3、典型应用场景

远程服务器管理:运维人员通过SSH安全管理Linux/Unix服务器。

自动化脚本与工具:结合SSH密钥实现无人值守备份、CI/CD流水线等。

跨防火墙访问:通过隧道访问内网服务(如数据库、Web管理界面)。

安全文件传输:取代FTP,用于敏感数据的加密传输。

1.4、配置优化与安全实践

禁用密码登录:仅允许公钥认证,防止暴力破解。

# 修改sshd_config
PasswordAuthentication no

限制用户与IP:仅允许特定用户或IP段访问。

AllowUsers admin@192.168.1.0/24

更改默认端口:减少自动化攻击风险(如 Port 2222)。

禁用Root登录:降低权限滥用风险。

PermitRootLogin no

更新与漏洞防护:保持OpenSSH版本最新,及时修复安全漏洞。

1.5、优势总结

  • 开源免费:可自由使用、审计和修改代码。

  • 跨平台支持:适用于Linux、Windows(通过WSL或OpenSSH for Windows)、macOS等。

  • 社区强大:持续更新维护,及时响应安全威胁。

2、配置OpenSSH

2.1、安装OpenSSH服务器

更新系统:

sudo apt update && sudo apt upgrade -y

安装 OpenSSH Server

sudo apt install openssh-server -y

启动并启用 SSH 服务

sudo systemctl start ssh
sudo systemctl enable ssh # 设置开机启动

检查 SSH 服务状态

sudo systemctl status ssh

2.2、配置 SSH 安全性

修改默认端口(可选,但推荐)

编辑 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

找到 #Port 22,取消注释并修改为一个非标准端口(例如 2222):

Port 2222

禁用 root 登录(推荐)

/etc/ssh/sshd_config 中找到以下行,取消注释:#PermitRootLogin prohibit-password

PermitRootLogin no

2.3、配置防火墙

安装 UFW(可选):

sudo apt install ufw -y

允许 SSH 端口:

sudo ufw allow 602/tcp  # 替换为你的 SSH 端口

启用防火墙:

sudo ufw enable

3、使用vscode远程资源管理器远程连接

3.1、安装 Remote-SSH 插件

3.2、打开配置文件

/Users/wq/.ssh/config

  • 特点:这是用户目录下的SSH配置文件,通常用于存储特定用户的SSH配置。
  • 适用场景:当您只需要修改自己的SSH配置,且不需要系统管理员权限时,选择此选项是合适的。
  • 影响范围:仅影响当前用户,不会影响其他用户或系统范围的SSH配置。

/etc/ssh/ssh_config

  • 特点:这是系统范围的SSH配置文件,它影响所有用户和SSH连接。
  • 适用场景:当您需要修改整个系统的SSH配置,且您拥有管理员权限时,可以选择此选项。但请谨慎操作,因为这会影响所有用户。
  • 影响范围:更改此文件会影响整个系统的SSH配置。

设置指定自定义配置文件

  • 特点:此选项允许您指定一个不同于上述两个位置的自定义配置文件。
  • 适用场景:当您需要更大的灵活性,或者需要与其他用户或系统共享配置文件时,可以选择此选项。
  • 影响范围:取决于您指定的配置文件路径和权限设置。

3.3、配置信息

打开SSH配置,可以进行配置的增删改查,保存文件即可。

3.4、远程连接

 连接方式1


  • -v 参数:表示启用详细模式(verbose mode)。在这种模式下,SSH 客户端会输出详细的调试信息,包括连接过程中的每一步操作、加密协商、认证过程等。

连接方式2

 在客户端(如本地电脑)打开终端,使用以下命令连接到服务器:

ssh -v -p 602 wangqiang@192.168.2.22  # 替换端口、用户名和服务器 IP
# 通过终端进行连接 

(dify) wq@wqdeMacBook-Pro dify % ssh -v -p 602 wangqiang@192.168.2.22
OpenSSH_9.9p1, LibreSSL 3.3.6
debug1: Reading configuration data /Users/wq/.ssh/config
...
...

Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.8.0-58-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

扩展安全维护(ESM)Applications 未启用。

0 更新可以立即应用。

2 个额外的安全更新可以通过 ESM Apps 来获取安装。
可通过以下途径了解如何启用 ESM Apps:at https://ubuntu.com/esm

New release '24.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

*** System restart required ***
wangqiang@wangqiang:~$ 


# 退出远程

wangqiang@wangqiang:~$ exit
注销
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to 192.168.2.22 closed.
Transferred: sent 3644, received 4388 bytes, in 158.5 seconds
Bytes per second: sent 23.0, received 27.7
debug1: Exit status 0
(dify) wq@wqdeMacBook-Pro dify % 
### 使用VSCode从Windows进行远程SSH连接Ubuntu服务器的方法和配置 #### 安装必要的软件组件 为了能够顺利地使用 VSCode 进行远程开发,需先确保 Windows 和 Ubuntu 上都已安装好所需的工具。 在 Windows 系统上,需要安装 Visual Studio Code 并添加 Remote - SSH 扩展包。这可以通过访问扩展市场并搜索 "Remote - SSH" 来完成[^1]。 对于目标 Linux (Ubuntu) 机器,则要确认已经正确设置了 OpenSSH Server。通常情况下可以利用如下命令来安装它: ```bash sudo apt update && sudo apt install openssh-server ``` 此操作会下载并设置好服务端所需的一切文件[^2]。 #### 配置SSH密钥认证 建立安全可靠的通信渠道至关重要。建议采用基于公私钥的身份验证方式代替简单的密码登录模式。具体做法是在本地计算机生成一对新的 RSA 密钥对,并将其公共部分复制到远端主机的 `~/.ssh/authorized_keys` 文件里去。 ```bash # 在Windows下执行(假设已安装Git Bash其他支持ssh-keygen的环境) ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ssh-copy-id user@remote_host_ip_address ``` 上述指令创建了一个强度较高的加密密钥,并自动完成了向远程主机上传的过程。 #### 设置VSCode中的SSH配置 打开 VSCode 后,点击左侧活动栏里的绿色图标进入远程资源管理器视图;接着选择 “Connect to Host...”,按照提示输入相应的用户名以及 IP 地址组合成的形式如 `username@ipaddress` 的字符串即可尝试首次链接。如果之前成功建立了无密码登陆机制的话,此时应该可以直接跳过身份校验环节而无需手动干预。 另外还可以编辑位于用户目录下的 `.ssh/config` 文本档来自定义更多参数选项,比如指定默认使用的端口号是设定别名方便记忆等特性。 ```plaintext Host myserver HostName remote_host_ip_address User username Port 22 IdentityFile ~/.ssh/id_rsa ``` 这样以后就可以简单地只用 `myserver` 就能代表完整的地址信息了。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI风老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值