新闻资讯

教如何 SSH 远程连接内网服务器

远程 | 2025-03-2

SSH(安全外壳协议,Secure Shell Protocol)是一种加密的网络传输协议,常用于在网络中实现客户端和服务端的连接,比如在本地电脑通过 SSH 连接远程服务器进行开发、管理等操作。以下为你详细介绍如何使用 SSH 远程连接内网服务器。
一、准备工作
1.安装 SSH 客户端:
-Windows 系统:自带的命令提示符虽然也支持 SSH,但体验不佳,推荐使用 Xshell 等第三方工具。从 Xshell 官网(https://www.netsarang.com/zh/xshell-download/)下载安装包,按照提示完成安装
-macOS 系统:系统自带 SSH 客户端,可直接使用,无需额外安装。
-Linux 系统:大部分 Linux 发行版都自带 SSH 客户端,可通过在终端输入ssh -V命令查看是否已安装及版本信息。例如,在 Ubuntu 系统中,打开终端输入该命令,若显示版本号,如OpenSSH_8.2p1 Ubuntu-4ubuntu0.5, OpenSSL 1.1.1f 31 Mar 2020,则表示已安装。
1.安装 SSH 服务端:
-Linux 系统:以 Ubuntu 为例,检查 OpenSSH 服务端软件是否可用,可在终端输入ssh localhost。若未安装,使用命令sudo apt-get install openssh-server进行安装。安装完成后,可通过ps -ef | grep ssh命令查看是否有sshd进程在运行,若有则表示 SSH 服务端已正常运行。
-Windows 系统:如果是 Windows Server 系统,可在 “服务器管理器” 中添加 “OpenSSH 服务器” 角色来安装 SSH 服务端。

二、基于密码的登录连接
1.连接命令:
-如果本地机用户名和远程机用户名一致,连接默认端口 22 时,在终端输入ssh 远程服务器IP地址。例如,远程服务器 IP 为 192.168.1.100,输入ssh 192.168.1.100。
-若用户名不同,或者需要指定连接端口(非默认 22 端口),命令格式为ssh -p 端口号 用户名@远程服务器IP地址 。比如,端口号为 2222,用户名为 user,IP 为 192.168.1.100,输入ssh -p 2222 user@192.168.1.100。
1.首次连接:当第一次连接远程服务器时,会得到类似如下提示:The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. ED25519 key fingerprint is SHA256:xxxxxx. This key is not known by any other names Are you sure you want to continue connecting (yes/no/(fingerprint))?,此时正常输入yes,然后输入远程服务器的账号密码即可连接成功。

三、基于公钥登录连接
1.原理:公钥登录是先在本地机器上生成一对公钥和私钥,然后将公钥上传到远程服务器。每次登录时,远程主机会向用户发送一段随机字符串,用户用自己的私钥对这段随机字符串进行加密,再把加密后的字符串发送给远程主机,远程主机会用用户的公钥对其解密,若解密后的字符串和发送的随机字符串一致,就认为用户合法,允许登录。
2.生成密钥对:在本地终端运行ssh-keygen -t rsa -b 4096命令生成密钥对,-t参数指定密钥类型为 RSA,-b参数指定密钥长度为 4096 位。运行后会提示输入密钥保存路径,直接回车则保存在默认路径(如 Windows 下一般为C:\Users\你的用户名.ssh ,Linux 和 macOS 下为~/.ssh)。接着提示输入密钥密码,若不设置密码,直接回车即可,再次确认密码时也回车。完成后,在保存路径下会生成id_rsa.pub(公钥文件)和id_rsa(私钥文件)。
3.上传公钥到远程服务器:将本地生成的公钥上传到远程服务器,可使用ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@远程服务器IP地址命令。例如,用户名为 user,IP 为 192.168.1.100,输入ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100,输入远程服务器密码后,公钥就会被添加到远程服务器的authorized_keys文件中。之后再连接时,就无需输入密码,直接通过公钥验证即可登录。


拓展阅读:
-SSH 协议版本区别:SSH 有 SSH1 和 SSH2 两个主要版本,SSH2 在安全性、性能等方面有显著提升,现在广泛使用的是 SSH2。比如 SSH2 支持更多的加密算法,能更好地保护数据传输安全。
-如何排查 SSH 连接失败问题:如果连接失败,先检查网络是否连通,可通过ping命令测试。再查看 SSH 服务端是否正常运行,防火墙是否阻挡了 SSH 端口。例如在 Linux 系统中,检查sshd服务状态systemctl status sshd ,查看防火墙规则是否允许 SSH 端口通过。
-SSH 隧道的作用:SSH 隧道可以在不安全的网络中建立一条安全的通道,用于转发网络流量。比如可以通过 SSH 隧道访问被限制访问的内网资源,实现安全的数据传输。