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

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

有问题评论区交流~

相关推荐
祁鱼鱼鱼鱼鱼5 分钟前
Keepalived实验环境设定
linux·服务器·网络
Genie cloud8 分钟前
VPS 网络连接故障诊断与排查实用指南
linux·服务器·ssh
RisunJan16 分钟前
Linux命令-lnstat(快速查找文件和目录)
linux·运维·服务器
滴水之功22 分钟前
OpenWrt的WAN和LAN的切换
linux·网络·openwrt
lihui_cbdd42 分钟前
Slurm 集群内存管理与限制配置
运维·服务器
知识即是力量ol42 分钟前
研发实战:Git 规范化开发全流程指南
git·gitee·github
历程里程碑43 分钟前
Linux 17 程序地址空间
linux·运维·服务器·开发语言·数据结构·笔记·排序算法
CC.GG1 小时前
【Linux】进程控制(二)----进程程序替换、编写自主Shell命令行解释器(简易版)
linux·服务器·数据库
数研小生1 小时前
Full Analysis of Taobao Item Detail API taobao.item.get
java·服务器·前端
H Journey1 小时前
Linux 下添加用户相关
linux·运维·服务器·添加用户