SSH:远程命令行管理的基石
SSH(Secure Shell)是连接和管理 Linux 服务器的黄金标准,它提供了一个加密的通信通道,确保所有数据传输的安全性,通过在安卓设备上安装 SSH 客户端,你的手机或平板就能瞬间变身为一台便携的终端。
CentOS 服务端的准备
确保你的 CentOS 服务器已经安装并运行了 OpenSSH 服务。
# 检查是否已安装 sshd 服务 rpm -qa | grep openssh-server # 如果未安装,使用 yum 进行安装 sudo yum install openssh-server -y # 启动 sshd 服务并设置为开机自启 sudo systemctl start sshd sudo systemctl enable sshd # 检查服务状态,确保其正在运行 sudo systemctl status sshd
配置防火墙允许 SSH 流量(默认端口为 22)。
# 开放 TCP 22 端口 sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload
安卓端客户端的选择与配置
Google Play 商店中有许多优秀的 SSH 客户端,其中两款备受推崇:
客户端名称 | 主要特点 | 同步功能 | 价格模式 |
---|---|---|---|
Termius | 界面现代美观,支持 SFTP、端口转发,跨平台同步能力强 | 云端同步(主机、密钥、片段) | 免费版功能有限,高级版订阅 |
JuiceSSH | 功能全面,支持插件扩展,本地密钥管理强大 | 无云端同步,可手动导入/导出 | 免费版功能强大,有付费插件 |
配置连接通常需要以下信息:
- 别名(Nickname): 为这个连接起一个容易识别的名字。
- 主机(Host): CentOS 服务器的 IP 地址或域名。
- 端口(Port): 默认为 22,如果修改过则填写新端口。
- 用户名(Username): 登录 CentOS 所用的用户名。
- 密码(Password)或密钥(Key): 认证凭据。
安全升级:使用 SSH 密钥认证
密码认证虽然方便,但容易受到暴力破解,使用 SSH 密钥对是更安全的选择。
- 在安卓客户端生成密钥对。 大多数 SSH 客户端都内置了此功能,通常在“密钥管理”或“身份认证”设置中可以找到“生成密钥”选项。
- 将公钥复制到 CentOS 服务器。 客户端会显示生成的公钥文本,在 CentOS 上,将其追加到对应用户的
~/.ssh/authorized_keys
文件中。
# 切换到要登录的用户,ec2-user su - ec2-user # 确保 .ssh 目录存在 mkdir -p ~/.ssh chmod 700 ~/.ssh # 将安卓客户端显示的公钥内容,粘贴到 authorized_keys 文件中 echo "你的公钥内容" >> ~/.ssh/authorized_keys # 设置正确的文件权限 chmod 600 ~/.ssh/authorized_keys
完成配置后,在 SSH 客户端中选择使用该密钥进行认证,即可实现无密码登录。
文件传输:无缝同步数据
除了命令行管理,文件传输也是常见需求,SSH 协议本身就支持 SFTP(SSH File Transfer Protocol),许多 SSH 客户端都集成了 SFTP 文件管理器。
- 在 Termius/JuiceSSH 中使用 SFTP: 建立连接后,通常会有一个“文件传输”或“SFTP”的标签页,界面类似于本地文件管理器,你可以直观地在安卓设备和 CentOS 服务器之间上传、下载、删除和重命名文件,支持拖拽操作,非常便捷。
- 使用专用 SFTP 客户端: 如果你需要更专业的文件管理体验,可以安装如“Turbo Client”等应用,它们提供了更丰富的功能,如多标签页、文件同步、文本编辑器等。
服务访问:移动化你的应用
CentOS 服务器上可能运行着网站、数据库、开发环境等各种服务,通过安卓设备访问这些服务,是“移动化管理”的进阶玩法。
访问 Web 服务
这是最简单的一种,只需在安卓手机的浏览器中输入服务器的 IP 地址或域名,CentOS 上运行着 Web 服务器(如 Nginx 或 Apache),并且防火墙已开放 80 (HTTP) 或 443 (HTTPS) 端口,你就能直接访问网站或 Web 应用。
通过 SSH 隧道访问内部服务
对于数据库(如 MySQL、Redis)等不直接暴露于公网的服务,可以使用 SSH 端口转发(隧道)来安全访问。
场景示例: 在安卓上使用数据库管理工具连接 CentOS 上的 MySQL 数据库(默认端口 3306)。
- 在 SSH 客户端中设置隧道:
- 本地端口: 随意选择一个安卓设备上未被占用的端口,如
13306
。 - 目标主机:
localhost
或0.0.1
(因为数据库和 SSH 服务在同一台服务器上)。 - 目标端口:
3306
(MySQL 的服务端口)。
- 本地端口: 随意选择一个安卓设备上未被占用的端口,如
- 建立 SSH 连接: 启动这个带隧道配置的连接。
- 在安卓数据库客户端中连接:
- 主机地址:
localhost
或0.0.1
- 端口:
13306
(你设置的本地端口) - 用户名和密码: MySQL 的数据库用户名和密码。
- 主机地址:
通过这种方式,所有数据库流量都会被加密的 SSH 连接包裹,安全地穿过网络,直达服务器内部。
安全最佳实践:保障连接安全
将管理权限延伸到移动设备,安全性是重中之重。
- 禁用密码认证: 在配置好密钥登录后,建议编辑 CentOS 的 SSH 配置文件
/etc/ssh/sshd_config
,将PasswordAuthentication yes
改为PasswordAuthentication no
,强制所有用户使用密钥登录。 - 更改默认 SSH 端口: 将默认的 22 端口修改为一个不常用的端口(如 2222),可以有效减少自动化扫描和攻击。
- 使用 fail2ban: 安装并配置
fail2ban
服务,它可以自动监控日志,并在检测到多次失败登录尝试后,封禁攻击者的 IP 地址。 - 保持系统更新: 定期运行
sudo yum update
,确保服务器系统和所有软件包都是最新版本,及时修复安全漏洞。
相关问答 FAQs
连接时提示 “Connection Refused”(连接被拒绝)或 “Connection Timed Out”(连接超时),该怎么办?
解答: 这类问题通常由网络或服务器配置引起,可以按以下步骤排查:
- 网络连通性: 确认安卓设备和 CentOS 服务器是否在同一个网络,或者服务器所在的网络是否允许来自你安卓设备 IP 的访问,可以尝试从安卓设备
ping
服务器的 IP 地址。 - SSH 服务状态: 登录到 CentOS 服务器(通过其他方式,如 VNC 或物理控制台),检查
sshd
服务是否正在运行(systemctl status sshd
)。 - 防火墙规则: 这是最常见的原因,检查 CentOS 上的防火墙(
firewall-cmd --list-all
)是否确实开放了 SSH 端口,也要考虑是否存在网络层面的防火墙(如云服务商的安全组)阻止了访问。 - 端口和地址: 确认在 SSH 客户端中输入的 IP 地址和端口号完全正确,如果修改了 SSH 端口,一定要使用新端口。
除了 SSH,有没有更图形化的方式来管理 CentOS 服务器的桌面环境?
解答: 有的,你可以通过 VNC(Virtual Network Computing)或 RDP(Remote Desktop Protocol)协议来实现,虽然对于服务器管理,命令行更高效,但某些场景下图形界面是必需的。
- 在 CentOS 上安装桌面环境: 如果你的 CentOS 是最小化安装,需要先安装一个桌面环境,如 GNOME(
sudo yum groupinstall "GNOME Desktop"
)。 - 安装并配置 VNC 服务器: 安装
tigervnc-server
(sudo yum install tigervnc-server
),然后为你的用户设置 VNC 密码(vncpasswd
),并启动 VNC 服务,你需要配置 VNC 使用的显示编号和分辨率。 - 在安卓上安装 VNC Viewer: 从应用商店下载如 “VNC Viewer by RealVNC” 等应用。
- 建立连接: 在 VNC Viewer 中输入
服务器IP:显示编号
(168.1.100:1
),然后输入之前设置的 VNC 密码,即可看到 CentOS 的桌面。
注意: VNC 默认传输是未加密的,为了安全,强烈建议将其通过 SSH 隧道进行访问,方法与前文访问数据库类似。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复