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

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

有问题评论区交流~

相关推荐
啊吧怪不啊吧1 小时前
UU远程协助迎来升级!第一期更新实测
运维·服务器·远程工作
系'辞1 小时前
【obsidian指南】配置obsidian git插件,实现obsidian数据定时同步到github仓库(Mac电脑)
macos·github·agent·知识库
C_心欲无痕7 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
冰西瓜6007 小时前
国科大2025操作系统高级教程期末回忆版
linux
sunfove8 小时前
光网络的立交桥:光开关 (Optical Switch) 原理与主流技术解析
网络
HIT_Weston8 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng20188 小时前
Linux下Beyond Compare过期
linux·运维·服务器
喵叔哟8 小时前
20.部署与运维
运维·docker·容器·.net
HIT_Weston8 小时前
92、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(六)
linux·运维·ubuntu
CodeAllen嵌入式8 小时前
Windows 11 本地安装 WSL 支持 Ubuntu 24.04 完整指南
linux·运维·ubuntu