远程连接另一台Linux服务器的标准做法是使用SSH(Secure Shell)协议,一条ssh 用户名@IP地址命令就能建立安全连接,这是运维工作最基础的技能,没有之一。无论对方在局域网还是公网,只要IP可达、端口开放、账号密码正确,SSH都能让你像坐在那台机器前一样操作。
在正式动手之前,先想清楚一个问题:你要连的服务器是局域网内的小机器还是云厂商的云主机,两者在连接方式上几乎没有区别,区别只在于网络是否能通,下文以最常见的场景来展开。
首次连接,必须掌握的3步操作
第一步:确认服务器的IP地址和账号
拿到一台新服务器,你需要知道三件事:IP地址、登录用户名、密码或密钥,云服务器(如简米云、酷番云)通常在购买时设置了root密码或密钥对;物理机则需要在机器本地提前配置好网络和用户。
查询IP地址的常用命令:
ip addr或ifconfig(查看内网IP)curl ifconfig.me(查看公网IP,需服务器能联网)
第二步:从本地发起SSH连接
在Windows、macOS或Linux的终端里输入以下命令:
ssh root@192.168.1.100
root是登录用户名,可换成其他用户168.1.100是目标服务器IP
第一次连接会提示确认主机指纹,输入yes回车即可,随后系统会要求输入密码,输入时不显示任何字符,这是正常现象,输完直接回车。
如果要指定端口(默认是22),使用-p参数:
ssh -p 2222 root@192.168.1.100
第三步:断开连接
连接成功后,输入exit或logout即可退出,如果需要临时断开但保持会话,用Ctrl + B + D或直接关掉终端(不推荐,可能断掉后台任务)。
为什么别再用密码登录了:配置SSH密钥免密
日常管理多台服务器时,频繁输入密码既慢又不安全,业内成熟的做法是用密钥对认证替代密码登录,密钥对由公钥和私钥组成,公钥放在服务器上,私钥留在本地。
生成密钥对
在本地机器执行:
ssh-keygen -t ed25519 -C "your_email@example.com"
建议一路回车,默认保存到~/.ssh/id_ed25519,文件权限可以调整一下:
chmod 600 ~/.ssh/id_ed25519
把公钥复制到服务器
使用ssh-copy-id命令一步完成:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.1.100
如果没有ssh-copy-id
,手动追加也行:
cat ~/.ssh/id_ed25519.pub | ssh root@192.168.1.100 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
配置完成后,再次连接就不需要密码了,此时可以修改服务器SSH配置,彻底禁用密码登录。
# 编辑 /etc/ssh/sshd_config PasswordAuthentication no PubkeyAuthentication yes
改完重启SSH服务:
systemctl restart sshd
提醒:禁用密码登录前,务必先验证密钥登录是否稳定可用,一旦配置出错,你可能把自己锁在门外。
公司linux服务器怎么远程连接:跳板机的实际用法
大多数公司的不论是简米云还是自建机房,生产环境的Linux服务器都处于安全组或防火墙后,不直接暴露公网,这时通常需要先连一台跳板机(堡垒机),再通过它跳转访问目标内网机器。
场景还原
你的目标是0.0.5,但这台机器只允许内网访问,你能访问的是一台公网跳板机0.113.10,常规做法是先连跳板机,再在跳板机上执行SSH进入内网机器。
# 先登录跳板机 ssh user@203.0.113.10 # 在跳板机上登录内网目标机 ssh user@10.0.0.5
这种代理方式在本地配置好即可直接连接,无需逐层登录,核心操作是在~/.ssh/config里添加目标主机的代理配置:
Host target
HostName 10.0.0.5
User root
ProxyJump jump
接着在本地直接运行ssh target就能自动跳转。
用终端工具搞定多台机器
如果你用的是Windows,最常见的方式是用Xshell,Xshell的会话管理可以保存多台服务器信息,连接时只需双击会话,不用每次输入IP和账号,行业共识认为,Xshell仍然是Windows下远程连接linux服务器的主流工具之一,另外FinalShell和MobaXterm也有不少忠实用户。
远程连接linux服务器工具哪个好? 这要看你的使用场景:
| 工具 | 平台 | 核心优势 |
|---|---|---|
| Xshell | Windows | 老牌稳定,轻量 |
| MobaXterm | Windows | 自带文件管理和X server |
| Termius | 全平台 | 移动端可用,支持同步 |
| FinalShell | Windows/macOS | 国产免费,内置监控图表 |
| 直接命令行SSH | Linux/macOS | 原生支持,无需额外安装 |
用过一段时间后你会发现,图形化工具能提升效率,但命令行永远不会失效,建议至少在命令行下把原理弄明白,再考虑用工具偷懒。
远程连接不上,先查这5个原因
连接不上Linux服务器的原因,绝大多数集中在网络、端口、防火墙SELinux这五个方面。
检查网络连通性
先从本地ping一发目标IP,能通说明网络层没问题。
ping 192.168.1.100
确认端口监听状态
在目标服务器上检查22端口是否正常监听:
ss -tlnp | grep 22
如果输出为空,说明SSH服务没有启动,或者被改到了其他端口。
排查安全组和防火墙
云服务器要先看安全组规则是否放行了22端口入方向,本地防火墙也要确认:
# 查看防火墙状态 sudo systemctl status firewalld # 或查看iptables sudo iptables -L -n
看SSH服务日志
日志是最直接的第一手信息,能告诉你服务端拒绝连接的真正原因:
sudo journalctl -u ssh -f
如果日志提示Permission denied,多为密钥或密码问题;如果提示Connection reset,多半是防火墙或SELinux拦截。
验证密钥文件权限
ssh用密钥登录不上的解决办法,多数时候是权限惹的祸,服务器端和本地的~/.ssh目录权限必须是700,authorized_keys(公钥文件)权限需为600。
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
连接之后,如何把本地文件传到远程服务器
远程连接不只限于执行命令,文件传输是高频需求,Linux下最通用的工具是scp。
从本地上传到远程服务器:
scp /local/path/file.txt root@192.168.1.100:/remote/path/
从远程服务器下载到本地:
scp root@192.168.1.100:/remote/path/file.txt /local/path/
传输整个目录加-r参数:
scp -r /local/dir/ root@192.168.1.100:/remote/dir/
如果目标机器文件较多,推荐用rsync,支持增量传输和断点续传,效率明显优于scp。
让SSH连接更稳定的两个配置
管理生产服务器的同学都知道,长时间挂着的SSH会话经常卡死或断开,这个问题的根源是NAT超时或网络空闲过长,在本地~/.ssh/config里加上心跳配置可改善:
Host
ServerAliveInterval 60
ServerAliveCountMax 3
这样每60秒发一次心跳包,最多3次没回应才断开,基本能避免空闲断线的问题。
安全加固:远程连接Linux服务器必做的4件事
一台没有防护的Linux服务器暴露在公网上,被暴力破解的概率相当高,据统计,使用弱密码的服务器在公网数小时内就会收到扫描尝试,建议至少完成以下加固:
- 禁用root直接登录,在
/etc/ssh/sshd_config里设置PermitRootLogin no,改用普通用户登录后su切换。 - 更换默认端口,将22端口改为高位端口(如22222),能过滤掉多数自动化扫描。
- 配置Fail2Ban,当发现恶意登录尝试时,自动封禁来源IP。
- 定期更新系统补丁,保持
openssh-server版本最新,减少已知漏洞风险。
几个常用的运维操作技巧
- 查看全服务器磁盘占用情况:
df -h(这里建议加上--total参数) - 想中断执行时间较长的命令,按
Ctrl + C - 如果想在断开SSH之后依然让任务在服务器端继续运行,考虑用
tmux或screen
偶尔遇到服务器的网络配置调整错误导致连不上,可以试试用云厂商的控制台提供VNC远程连接功能,直接进入服务器本地终端,修改完配置,再切回SSH,VNC相当于“物理键盘”的远程版本,适合用来救急。
远程连接另一台Linux服务器,核心就是基于SSH协议的客户端与服务端交互,掌握ssh命令、密钥配置、跳板机原理、常见故障排查,你就能应对绝大多数工作中遇到的远程连接场景,每次连接遇到问题,沿着网络通不通、端口开不开、认证过不过这条路径排查,效率最高。
常见问题解答
远程连接linux服务器的端口可以随意改吗?
可以,修改服务器端/etc/ssh/sshd_config中的Port字段即可,修改后需重启SSH服务,并用ssh -p 新端口进行连接,需要注意:云服务器安全组要同步放行新端口,客户端也要指定正确的端口号。
使用密钥登录之后还想用密码登录,怎么恢复?
将/etc/ssh/sshd_config中的PasswordAuthentication改回yes,然后重启sshd服务,同时确认authorized_keys文件没有被误改为不相关的空内容,否则两种认证都可能失效。
ssh连接时提示“Host key verification failed”怎么处理?
该提示表示服务器主机密钥和本地记录的不一致,常见于服务器重装系统或IP被重新分配,解决办法是清除本地记录中该IP的旧密钥:在本地运行ssh-keygen -R 服务器IP,重新连接即可,如果每次都出现该提示且IP来源可疑,需警惕中间人攻击,谨慎处理。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/747978.html





