SSH远程连接入门:安全高效地管理服务器

SSH远程连接入门:安全高效地管理服务器

服务器在机房,怎么远程操作?用SSH。

今天教你SSH的基本用法,让远程管理变得简单。

最基本的连接

bash 复制代码
ssh 用户名@服务器IP

例如:

bash 复制代码
ssh root@192.168.1.100

第一次连接会问你确认指纹,输入yes。然后输入密码就连上了。

指定端口

默认端口是22,如果改了:

bash 复制代码
ssh -p 2222 root@192.168.1.100

用密钥登录(推荐)

每次输密码太麻烦,用密钥更安全更方便。

第一步:生成密钥对

bash 复制代码
ssh-keygen -t rsa -b 4096

一路回车,会在~/.ssh/生成两个文件:

  • id_rsa - 私钥,绝对不能泄露
  • id_rsa.pub - 公钥,放到服务器上

第二步:把公钥传到服务器

bash 复制代码
ssh-copy-id root@192.168.1.100

或者手动复制:

bash 复制代码
cat ~/.ssh/id_rsa.pub | ssh root@192.168.1.100 "cat >> ~/.ssh/authorized_keys"

第三步:测试

bash 复制代码
ssh root@192.168.1.100

不用输密码直接连上了!

配置别名

每次输IP太长,可以配置别名。

编辑~/.ssh/config:

复制代码
Host myserver
    HostName 192.168.1.100
    User root
    Port 22
    IdentityFile ~/.ssh/id_rsa

以后直接:

bash 复制代码
ssh myserver

一个单词搞定!

常用操作

执行单条命令不登录:

bash 复制代码
ssh root@192.168.1.100 "df -h"

上传文件:

bash 复制代码
scp file.txt root@192.168.1.100:/tmp/

下载文件:

bash 复制代码
scp root@192.168.1.100:/var/log/app.log ./

上传目录:

bash 复制代码
scp -r mydir/ root@192.168.1.100:/opt/

端口转发

本地转发(访问本地端口=访问远程服务):

bash 复制代码
ssh -L 8080:localhost:80 root@192.168.1.100

现在访问本地8080就相当于访问服务器的80端口。

远程转发(让远程能访问本地服务):

bash 复制代码
ssh -R 8080:localhost:3000 root@192.168.1.100

保持连接不断开

SSH连接久了不操作会断开,配置保活。

编辑~/.ssh/config:

复制代码
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

每60秒发一次心跳,3次没响应才断开。

跳板机登录

服务器在内网,需要通过跳板机:

bash 复制代码
ssh -J user@跳板机IP root@目标服务器IP

或者在config里配置:

复制代码
Host target
    HostName 192.168.1.100
    User root
    ProxyJump user@跳板机IP

安全建议

1. 禁用root密码登录

编辑/etc/ssh/sshd_config:

复制代码
PermitRootLogin prohibit-password
PasswordAuthentication no

只允许密钥登录。

2. 修改默认端口

复制代码
Port 2222

3. 限制登录IP

复制代码
AllowUsers root@192.168.1.*

4. 重启SSH服务

bash 复制代码
systemctl restart sshd

常见问题

Q:连接超时?

检查:

  1. 服务器IP是否正确
  2. 防火墙是否开放22端口
  3. SSH服务是否运行

Q:密钥登录不生效?

检查服务器上的权限:

bash 复制代码
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Q:连接老是断?

配置ServerAliveInterval,或者用screen/tmux保持会话。

更便捷的方案

管理多台服务器,每台都配置SSH挺麻烦的。特别是有些在内网,还得配跳板机。

我现在用星空组网把所有服务器组到一个虚拟网络,每台服务器有个固定的虚拟IP。SSH配置简单多了:

复制代码
Host server1
    HostName 10.26.1.10
    User root

Host server2
    HostName 10.26.1.11
    User root

不用跳板机,不用记公网IP,在哪都能直接连。

小结

SSH基本用法:

  • 连接:ssh user@ip
  • 密钥登录:ssh-keygen + ssh-copy-id
  • 配置别名:编辑~/.ssh/config
  • 传文件:scp

配好密钥和别名,远程管理效率翻倍。

有问题评论区交流~

相关推荐
Decay__17 分钟前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比
运维·数据库·sql·mysql·架构
CodeYp201940 分钟前
第19讲:自旋锁
linux·自旋锁
此生决int1 小时前
Linux系列(08)——进程控制
linux·运维·驱动开发
徐小夕1 小时前
万字长文!DeepSeek Super-agent × 企业知识库架构深度拆解与落地实践
前端·vue.js·github
奶油话梅糖1 小时前
打开项目 0.9 秒、内存只有 IDEA 的 1/12:OpenIDEA 用 Rust 把 IntelliJ IDEA 重造了一遍
java·rust·github·intellij-idea
BioTender1 小时前
Xaira 发布 X-Automate:将物理 AI 与智能体 AI 引入实验室自动化
运维·人工智能·自动化
Percep_gan1 小时前
Linux中安装gitea,很详细
linux·elasticsearch·gitea
Z21-X2 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
miofly3 小时前
GitHub 日榜趋势速报 | 2026-11-06
开源·github