帮助中心 > 关于网络安全 > 如何在Linux中使用SSH命令连接远程服务器?
如何在Linux中使用SSH命令连接远程服务器?
时间 : 2025-06-27 14:56:30
编辑 : Jtti

在Linux环境下,SSH已成为远程登录与控制服务器最主流的协议。通过SSH,用户可以安全地在本地终端执行远程命令、传输文件,甚至进行加密隧道通信。相比传统的Telnet或FTP,SSH不仅支持加密传输,还具备认证灵活、安全性高、配置灵活等优点。本文将系统讲解如何在Linux中使用SSH命令连接远程服务器。

一、SSH协议的基本原理

SSH是建立在TCP协议之上的一种加密远程通信协议,默认使用22端口。其设计初衷是取代明文传输的Telnet,实现安全加密的远程登录、命令执行与文件操作。

SSH通信采用公钥加密与对称加密相结合的方式:在初次连接时通过公钥交换验证身份,会话中使用对称加密加快传输效率,支持基于密码或密钥的认证方式。这使得即便在公网环境下,攻击者也无法窃取登录凭据或监听命令内容。

二、SSH命令基本语法

在Linux系统中,SSH客户端已内置在大多数发行版中。其基本连接命令格式为:

ssh [用户]@[主机] [-p 端口号] [参数]

例如:

ssh root@192.168.1.100

这表示以 root 用户身份连接目标服务器 192.168.1.100,默认使用22端口。

如果目标服务器端口非默认,可使用 -p 参数指定:

ssh user@example.com -p 2222

连接后,系统会提示输入目标主机账号的登录密码。若验证成功,即进入远程命令行交互状态。

三、使用密钥认证替代密码登录

虽然SSH支持密码认证,但为了提升安全性,推荐使用非对称密钥认证方式。

1. 在本地生成密钥对

执行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

过程会提示输入保存路径(默认 ~/.ssh/id_rsa)和可选的密码短语。

完成后,会生成两份文件:

id_rsa:私钥文件,严禁泄露;

id_rsa.pub:公钥文件,可安全传输。

2. 将公钥上传到远程服务器

可使用 ssh-copy-id 命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100

系统将自动将公钥追加到远程主机的 ~/.ssh/authorized_keys 文件中。

也可手动上传并设置权限:

scp ~/.ssh/id_rsa.pub user@remote:/tmp
ssh user@remote
mkdir -p ~/.ssh
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
rm /tmp/id_rsa.pub

3. 使用密钥连接远程主机

之后可直接执行:

ssh user@192.168.1.100

无需输入密码,若私钥设置了短语,会提示输入短语。

如密钥文件不在默认位置,可指定私钥路径:

ssh -i /path/to/id_rsa user@host

四、配置 SSH 客户端文件简化连接

频繁连接多个服务器时,可配置 ~/.ssh/config 文件,提高效率。例如:

Host devserver
    HostName 192.168.1.100
    User ubuntu
    Port 2222
    IdentityFile ~/.ssh/dev_rsa

之后只需执行:

ssh devserver

就能自动带入用户名、端口、密钥路径等参数。

多个配置块可共存,例如:

Host ali-prod
    HostName 47.91.x.x
    User root
    Port 22
    IdentityFile ~/.ssh/ali_rsa

Host tencent-test
    HostName 119.29.x.x
    User ubuntu
    Port 2022
    IdentityFile ~/.ssh/tencent_id_rsa

五、如何上传和下载文件?

SSH支持基于SCP和SFTP的文件传输。

1. 使用 scp 上传文件

scp localfile.txt user@remote:/home/user/

将 localfile.txt 上传至远程服务器指定路径。

递归上传目录:

scp -r myfolder/ user@remote:/home/user/

2. 从远程服务器下载文件

scp user@remote:/home/user/data.zip .

下载 data.zip 至当前目录。

3. 使用 sftp 进行交互式操作

sftp user@remote

登录后可使用:

ls:列出远程目录;

cd:切换远程目录;

put localfile:上传;

get remotefile:下载。

六、增强 SSH 安全性的实践建议

为了保障远程服务器不被恶意攻击,可按如下策略配置:

1. 禁用密码登录

编辑远程主机 /etc/ssh/sshd_config:

PasswordAuthentication no
PermitRootLogin no

然后重启服务:

sudo systemctl restart sshd

确保仅通过密钥登录。

2. 修改默认端口号

将 Port 22 改为其他不常见端口(如 2222、2828)以减少扫描破解。

Port 2222

修改后别忘记在本地连接命令中使用 -p 指定新端口。

3. 使用 Fail2Ban 防止破解

安装:

sudo apt install fail2ban

配置 /etc/fail2ban/jail.local,开启 SSH 防护策略。

掌握 SSH 命令不仅是 Linux 运维人员的基本技能,更是开发者、数据库工程师、安全工程师日常工作的必备工具。从最初的命令行连接,到密钥认证、配置优化、安全策略部署,再到隧道转发与文件同步,SSH 涵盖了远程管理中最重要的一系列环节。

正确使用 SSH,可以极大提升服务器访问的效率与安全性。尤其是在多节点部署、自动化脚本、CI/CD集成的场景下,SSH的自动登录与无缝控制能力已成为系统架构中的基础组件。

相关内容

Spring框架的核心价值及技术优势的详细解读 直播CDN加速的原理解析及应用指南分享 浏览器处理端口相关问题的主要机制解析 网络存储服务器选购和避雷指南 Linux VNC远程连接失败如何定位问题? 服务器域名解析IP全链路技术解析完整版 IPSSL证书技术是无域名场景下的安全加密方案 Windows虚拟机如何定期备份数据防止丢失? 国际私有专线IPLC和公共互联网深度对比 一文说清楚域名证书查询必要性
返回

24/7/365 全天候支持我们时刻恭候您

帮助中心