2、ubantu系统配置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、打开配置文件
/Users/wq/.ssh/config
- 特点:这是用户目录下的SSH配置文件,通常用于存储特定用户的SSH配置。
- 适用场景:当您只需要修改自己的SSH配置,且不需要系统管理员权限时,选择此选项是合适的。
- 影响范围:仅影响当前用户,不会影响其他用户或系统范围的SSH配置。
/etc/ssh/ssh_config
- 特点:这是系统范围的SSH配置文件,它影响所有用户和SSH连接。
- 适用场景:当您需要修改整个系统的SSH配置,且您拥有管理员权限时,可以选择此选项。但请谨慎操作,因为这会影响所有用户。
- 影响范围:更改此文件会影响整个系统的SSH配置。
设置指定自定义配置文件
- 特点:此选项允许您指定一个不同于上述两个位置的自定义配置文件。
- 适用场景:当您需要更大的灵活性,或者需要与其他用户或系统共享配置文件时,可以选择此选项。
- 影响范围:取决于您指定的配置文件路径和权限设置。
3.2、配置信息
打开SSH配置,可以进行配置的增删改查,保存文件即可。
3.3、远程连接
安装 Remote-SSH 插件
连接方式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/esmNew 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 %