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

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

有问题评论区交流~

相关推荐
Tjohn92 小时前
阿里云服务器yum install后服务器卡死,无法ssh
服务器·阿里云·ssh
郝学胜-神的一滴2 小时前
深入解析Linux的`pthread_create`函数:从原理到实践
linux·服务器·c++·程序人生
yenggd2 小时前
企业总部-分支-门点-数据中心使用骨干网SRv6 BE互联互通整体架构配置案例
运维·网络·计算机网络·华为·架构
Hello.Reader2 小时前
Flink SQL CALL 语句调用存储过程做数据操作与运维任务(含 Java 示例 + 避坑指南)
运维·sql·flink
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [fs]exec
linux·笔记·学习
FserSuN2 小时前
TCP RST 与 Broken Pipe:从协议语义到操作系统信号的体系化梳理
网络·网络协议·tcp/ip
looking_for__2 小时前
【Linux】基础IO
linux
阿豪学编程2 小时前
【Linux】进程间通信(IPC):从管道到共享内存
linux·运维·服务器
qq7590353662 小时前
docker一键部署网页版Win11系统
运维·docker·容器