当前位置: 首页 > news >正文

Linux 远程连接与文件传输:从基础到高级配置

Linux 远程连接与文件传输:从基础到高级配置

在 Linux 系统管理中,远程连接和文件传输是核心技能。SSH 协议提供了安全的远程访问方式,而基于 SSH 的 SFTP 和 SCP 则解决了跨服务器文件传输的需求。下面将详细解析 SSH 服务配置、三种远程操作方式的使用及密钥认证的配置过程

一、SSH 服务基础配置与管理

SSH 服务是 Linux 远程管理的基石,配置和启动步骤如下:

1. 挂载光驱获取软件源(如使用本地 ISO 镜像)
mount /dev/cdrom /mnt  # 挂载光驱到/mnt目录
2. 安装 SSH 服务端
yum -y install openssh openssh-clients  # 安装SSH服务端和客户端
3. 管理 SSH 服务
systemctl restart sshd  # 重启SSH服务
systemctl enable sshd   # 设置开机自启
systemctl status sshd   # 查看服务状态(检查是否正常运行)

二、SSH 远程连接:三种方式对比与使用

SSH 提供了三种远程操作方式,适用于不同场景:

工具协议主要功能适用场景典型命令
SSHSSH远程命令执行、交互式 Shell系统管理、执行命令ssh 用户名@服务器IP
SFTPSSH交互式文件传输(上传 / 下载)交互式文件操作sftp 用户名@服务器IP put 本地文件 远程目录 get 远程文件 本地目录
SCPSSH非交互式文件传输(一次性操作)脚本自动化、批量传输scp 本地文件 用户名@服务器IP:远程目录 scp 用户名@服务器IP:远程文件 本地目录

三、SSH 远程连接详解

1. 基础连接命令
ssh root@172.25.0.183  # 以root用户连接到指定IP的服务器
2. 图形化界面远程调用
ssh -X root@172.25.0.183  # -X参数启用X11转发,可远程运行图形化程序
3. SSH 协议工作原理(技术细节)

SSH 协议包含三个核心子协议:

  1. 连接协议:负责建立和管理客户端与服务器的连接
  2. 用户认证协议:验证用户身份(密码认证或密钥认证)
  3. 传输协议:加密数据传输,确保安全性

SSH 连接建立的五个阶段:

  1. 版本协商:客户端与服务器交换支持的 SSH 版本
  2. 密钥和算法协商:确定加密算法和会话密钥
  3. 用户认证:验证用户身份
  4. 会话请求:请求交互式 Shell 或其他服务
  5. 交互会话:建立安全通道,传输命令和输出

四、SFTP 文件传输详解

1. 连接与基本操作
sftp root@172.25.0.183  # 连接到服务器,进入SFTP交互式环境
2. 上传与下载命令
put /tmp/aa /var  # 上传本地/tmp/aa文件到服务器/var目录
get /tmp/cc /var  # 下载服务器/tmp/cc文件到本地/var目录
3. SFTP 常用命令(交互式环境)
命令作用
ls查看远程服务器文件列表
lls查看本地文件列表
cd 目录切换远程目录
lcd 目录切换本地目录
mkdir 目录创建远程目录
rm 文件名删除远程文件
exit退出 SFTP 会话

五、SCP 文件传输详解

1. 上传文件
scp /tmp/aa root@172.25.0.183:/var  # 上传本地/tmp/aa到服务器/var目录
2. 下载文件
scp root@172.25.0.183:/tmp/cc /var  # 下载服务器/tmp/cc到本地/var目录
3. 高级用法:递归复制目录
scp -r /tmp/dir root@172.25.0.183:/var  # 递归上传本地目录到服务器
scp -r root@172.25.0.183:/tmp/dir /var  # 递归下载服务器目录到本地

六、SSH 密钥认证配置(免密码登录)

密钥认证比密码认证更安全,适合自动化脚本和频繁登录场景。配置步骤如下:

1. 在客户端生成密钥对
ssh-keygen  # 生成密钥对(默认生成id_rsa私钥和id_rsa.pub公钥)
  • 按提示操作,可直接回车使用默认选项
  • 密钥对默认保存在~/.ssh/目录下
2. 将公钥上传到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.25.0.183  # 上传公钥到服务器
  • 此命令会将公钥添加到服务器的~/.ssh/authorized_keys文件中
  • 上传后,服务器会自动配置正确的文件权限
3. 验证密钥认证
ssh root@172.25.0.183  # 尝试连接,应无需密码直接登录
4. 密钥认证原理
  • 客户端生成密钥对(私钥保留在本地,公钥分发到服务器)
  • 登录时,服务器向客户端发送挑战
  • 客户端使用私钥加密挑战并返回
  • 服务器使用存储的公钥解密验证,确认客户端身份

七、常见问题与解决方法

  1. SSH 连接被拒绝
    • 检查服务器 SSH 服务是否运行:systemctl status sshd
    • 检查防火墙是否开放 22 端口:firewall-cmd --zone=public --permanent --add-port=22/tcp
  2. SFTP/SCP 无法上传下载
    • 检查目录权限:确保目标目录有写入权限
    • 检查 SELinux 状态:临时关闭测试:setenforce 0
  3. 密钥认证失败
    • 检查密钥文件权限:~/.ssh目录应为 700,私钥文件应为 600
    • 检查~/.ssh/authorized_keys文件权限和内容
  4. X11 转发失败
    • 确保服务器sshd_config中启用 X11 转发:X11Forwarding yes
    • 客户端安装 X 服务器(如 Xming for Windows)

八、安全增强建议

  1. 修改 SSH 默认端口(提高安全性,减少被扫描概率)

    vim /etc/ssh/sshd_config  # 编辑配置文件
    Port 2222                 # 修改Port为非22端口
    systemctl restart sshd    # 重启服务生效
    
  2. 禁用 root 直接登录

    vim /etc/ssh/sshd_config
    PermitRootLogin no        # 禁止root登录
    
  3. 限制可登录用户

    vim /etc/ssh/sshd_config
    AllowUsers user1 user2    # 只允许user1和user2登录
    
  4. 启用防火墙限制 SSH 访问

    firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
    firewall-cmd --reload
    

    此配置仅允许 192.168.1.0/24 网段的 IP 访问 SSH 服务

掌握 SSH 远程连接和文件传输是 Linux 系统管理的基础技能。通过合理配置 SSH 服务、灵活使用 SSH/SFTP/SCP 工具,以及正确设置密钥认证,可以高效、安全地管理远程服务器。遇到问题时,结合日志文件(/var/log/secure)和配置检查,能快速定位并解决问题

http://www.lryc.cn/news/602858.html

相关文章:

  • 多系统集成前端困境:老旧工控设备与新型Web应用的兼容性突围方案
  • Docker笔记(基本命令、挂载本地gpu、Dockerfile文件配置、数据挂载、docker换源)
  • 3Dmax模型位置归零
  • [机缘参悟-237]:AI人工神经网络与人类的神经网络工作原理的相似性
  • Java项目:基于SSM框架实现的进销存管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • Java Collections工具类
  • Mac查看本机ip地址
  • 【密码学】3. 流密码
  • 互信息:理论框架、跨学科应用与前沿进展
  • 【实时Linux实战系列】实时运动分析系统的构建
  • 表征学习:机器认知世界的核心能力与前沿突破
  • 组件化(一):重新思考“组件”:状态、视图和逻辑的“最佳”分离实践
  • 11. 若依参数验证 Validated
  • Linux DNS解析3 -- DNS解析代理配置使用
  • 机器学习基础-matplotlib
  • Python Pandas.merge函数解析与实战教程
  • 解决Echarts设置宽度为100%发现宽度变为100px的问题
  • Revo Uninstaller Pro专业版领取:2025最佳Windows软件卸载工具
  • 【历史人物】【韩愈】简历与生平
  • 解决访问 nginx 首页报错 404
  • 【LeetCode 热题 100】35. 搜索插入位置——二分查找(闭区间)
  • XCF32PVOG48C Xilinx Platform Flash PROM
  • 【计算机网络】计算机网络中光猫、交换机、路由器、网关、MAC地址是什么?两台电脑是如何联通的?
  • PTX指令集基础以及warp级矩阵乘累加指令介绍
  • 进程间通信性能测试于VPS服务器环境的实践方案
  • Java HashMap中的compute及相关方法详解:从基础到Kafka Stream应用
  • 【esp32s3】7 - VSCode + PlatformIO + Arduino + 构建项目
  • Jenkins流水线部署+webhook2.0
  • 【Kubernetes 指南】基础入门——Kubernetes 101(二)
  • Java 笔记 transient 用法