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

Linux连接服务器全攻略:从基础到进阶

在Linux系统下连接服务器是开发、运维人员的必备技能。无论是远程管理服务器、传输文件,还是进行开发调试,熟练掌握连接服务器的方法都能大幅提升工作效率。本文将从原理到实操,带你全面掌握Linux连接服务器的多种方式。

 

一、SSH协议基础

 

SSH(Secure Shell)是目前最常用的远程连接协议,它基于加密技术,能安全地在客户端和服务器之间传输数据,避免信息被窃取或篡改。大多数Linux服务器默认开启SSH服务,端口为22。

 

1. SSH客户端命令

 

在Linux系统中,自带了 ssh 命令用于连接服务器。其基本语法为:

 

ssh [用户名]@[服务器IP地址或域名]

 

 

例如,要以用户 ubuntu 连接IP地址为 192.168.1.100 的服务器,命令如下:

 

ssh ubuntu@192.168.1.100

 

 

首次连接时,系统会提示确认服务器的指纹信息,输入 yes 后,输入用户密码即可完成连接。

 

2. 密钥对认证

 

为了避免每次连接都输入密码,提高安全性和便捷性,可以使用密钥对认证。操作步骤如下:

 

1. 在本地客户端生成密钥对:

 

ssh-keygen -t rsa

 

 

按提示完成操作,默认会在 ~/.ssh/ 目录下生成 id_rsa (私钥)和 id_rsa.pub (公钥)文件。

 

2. 将公钥添加到服务器:

 

ssh-copy-id [用户名]@[服务器IP地址或域名]

 

 

完成上述步骤后,下次连接服务器时,无需输入密码,系统会自动通过密钥进行认证。

 

二、SFTP与SCP:安全传输文件

 

1. SFTP

 

SFTP(SSH File Transfer Protocol)是基于SSH协议的安全文件传输协议。使用 ssh 命令连接服务器后,可以通过 ls 、 cd 等命令浏览服务器文件系统,使用 put 和 get 命令上传和下载文件。

 

# 连接SFTP服务器

sftp [用户名]@[服务器IP地址或域名]

# 上传文件

put local_file remote_file

# 下载文件

get remote_file local_file

 

 

2. SCP

 

SCP(Secure Copy)是另一种安全文件传输方式,它可以在不登录服务器的情况下直接传输文件。

 

# 从服务器下载文件到本地

scp [用户名]@[服务器IP地址或域名]:/path/to/remote_file /path/to/local_file

# 上传本地文件到服务器

scp /path/to/local_file [用户名]@[服务器IP地址或域名]:/path/to/remote_file

 

 

三、其他连接方式

 

1. Telnet(不推荐)

 

Telnet是一种较老的远程登录协议,它以明文形式传输数据,安全性较差,目前已逐渐被SSH取代。

 

telnet [服务器IP地址或域名] [端口号]

 

 

2. 图形化工具

 

除了命令行工具,还可以使用图形化工具连接服务器,如 Remmina 、 FileZilla 等。这些工具操作界面友好,适合初学者使用。

 

- Remmina:支持SSH、RDP等多种协议,可方便地管理多个远程连接。

- FileZilla:强大的FTP/SFTP客户端,提供直观的文件传输界面。

 

四、常见问题与解决方案

 

1. 连接被拒绝:可能是服务器SSH服务未启动,或防火墙阻止了连接。检查服务器上 sshd 服务状态,并确保防火墙开放了22端口。

 

# 检查SSH服务状态

sudo systemctl status sshd

# 启动SSH服务

sudo systemctl start sshd

# 开放防火墙22端口(以UFW为例)

sudo ufw allow 22/tcp

 

 

2. 密钥认证失败:确保私钥文件权限设置正确(一般为600),且服务器上的 authorized_keys 文件包含正确的公钥信息。

 

# 设置私钥文件权限

chmod 600 ~/.ssh/id_rsa

 

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

相关文章:

  • pg库分表操作步骤- PostgreSQL 分区表
  • 讯飞AI相关sdk集成springboot
  • 在麒麟系统(Kylin OS)上安装`geckodriver`
  • 【图像大模型】Stable Diffusion XL:下一代文本到图像生成模型的技术突破与实践指南
  • [闲谈]C语言的面向对象
  • C 语言指针之手写内存深度剖析与手写库函数:带你从0开始手撸库 附录1.5 万字实战笔记
  • C#高级:Winform桌面开发中CheckedListBox的详解
  • 【Java学习笔记】final关键字
  • AI学习笔记二十八:使用ESP32 CAM和YOLOV5实现目标检测
  • 免费分享50本web全栈学习电子书
  • 【prometheus+Grafana篇】基于Prometheus+Grafana实现MySQL数据库的监控与可视化
  • 全链路解析:影刀RPA+Coze API自动化工作流实战指南
  • 高阶数据结构——哈希表的实现
  • window 显示驱动开发-报告渲染操作的可选支持
  • 2025 年网络安全趋势报告
  • uniapp 条件筛选
  • pytorch问题汇总
  • 开发过的一个Coding项目
  • 数据仓库维度建模详细过程
  • python打卡day37
  • Redis 5.0.10 集群部署实战(3 主 3 从,三台服务器)
  • 各个网络协议的依赖关系
  • OSC协议简介、工作原理、特点、数据的接收和发送
  • 区块链可投会议CCF C--APSEC 2025 截止7.13 附录用率
  • 【数字图像处理】_笔记
  • 从0开始学习R语言--Day10--时间序列分析数据
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的产品驱动型增长策略研究
  • 每日算法 -【Swift 算法】反转整数的陷阱与解法:Swift 中的 32 位整数处理技巧
  • 使用 OpenCV 实现“随机镜面墙”——多镜片密铺的哈哈镜效果
  • 鸿蒙仓颉开发语言实战教程:页面跳转和传参