在现代服务器管理中,远程连接是不可或缺的核心技能,对于广泛使用的 CentOS 通过命令行进行远程管理不仅高效,而且是专业运维人员的标准操作,本文将详细介绍在 CentOS 环境下,如何使用命令行工具进行安全、稳定的远程连接,并探讨相关的高级技巧与常见问题。

SSH:安全的远程连接基石
最主流、最安全的远程连接协议是 SSH(Secure Shell),它通过加密技术确保了数据在传输过程中的机密性和完整性,有效防止了信息被窃听或篡改,在几乎所有 Linux 发行版,包括 CentOS 中,SSH 的客户端和服务端软件(OpenSSH)都是默认安装或可以轻松获取的。
基础连接:ssh 命令的使用
ssh 是进行远程连接最基础也是最核心的命令,其基本语法结构非常直观:
ssh [用户名]@[主机地址]
- 用户名:您在远程 CentOS 服务器上拥有的登录账户名,
root或centos。 - 主机地址:可以是服务器的 IP 地址(如
168.1.100)或是一个可解析的域名(如server.example.com)。
首次连接示例:
当您第一次连接到一台新的服务器时,系统会显示一个类似如下的提示:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890abcdef.
Are you sure you want to continue connecting (yes/no/[fingerprint])? 这是 SSH 客户端在验证您正在连接的服务器的身份,输入 yes 并按回车,该服务器的公钥将被保存到您本地计算机的 ~/.ssh/known_hosts 文件中,下次连接时就不会再出现此提示,随后,系统会要求您输入对应用户的密码,密码输入时屏幕上不会显示任何字符,这是正常的安全措施,输入正确密码后,您便成功登录到远程 CentOS 服务器的命令行界面了。
常用 ssh 选项与参数
ssh 命令功能强大,通过附加选项可以满足不同场景的需求,下表列出了一些最常用的选项:
| 选项 | 说明 |
|---|---|
-p | 指定远程服务器上 SSH 服务的端口号,默认为 22。 |
-i | 指定用于身份验证的私钥文件,用于密钥认证。 |
-v | 启用详细模式(Verbose mode),打印调试信息,常用于排查连接问题。 |
-L | 本地端口转发,将本地端口的流量通过 SSH 隧道转发到远程服务器。 |
-C | 压缩传输的数据,有助于在慢速网络连接上提高速度。 |
如果服务器的 SSH 服务运行在 2222 端口上,连接命令应为:
ssh -p 2222 root@192.168.1.100
进阶安全:SSH 密钥认证
虽然密码认证简单直接,但存在被暴力破解的风险,更安全、更便捷的方式是使用 SSH 密钥对进行认证,其原理是生成一对密钥(私钥和公钥),私钥保留在本地计算机,公钥则放置在远程服务器上,连接时,服务器使用公钥来验证您的私钥,无需输入密码。

配置步骤如下:
生成密钥对:在您的本地计算机上,执行以下命令生成 RSA 密钥对:
ssh-keygen -t rsa -b 4096
按提示操作,通常可以直接按回车使用默认路径和空密码。
复制公钥到服务器:使用
ssh-copy-id命令可以轻松地将公钥上传到远程服务器:ssh-copy-id root@192.168.1.100
该命令会自动将您的公钥(
~/.ssh/id_rsa.pub)添加到远程服务器对应用户的~/.ssh/authorized_keys文件中,并设置正确的权限。测试连接:完成上述步骤后,再次尝试连接:
ssh root@192.168.1.100
您应该无需输入密码即可直接登录。
文件传输:scp 与 sftp
SSH 协议不仅用于命令行交互,也衍生出了安全的文件传输工具。

scp(Secure Copy):用于在本地和远程之间安全地复制文件。- 上传文件:
scp /path/to/local/file.txt root@192.168.1.100:/path/to/remote/ - 下载文件:
scp root@192.168.1.100:/path/to/remote/file.txt /path/to/local/
- 上传文件:
:提供了一个交互式的文件传输会话,类似于传统的 ftp,但所有传输都经过 SSH 加密,输入sftp root@192.168.1.100即可进入交互界面,使用put,get,ls,cd等命令管理文件。
相关问答FAQs
问题1:连接时提示 “Connection refused” 是什么原因,该如何解决?
解答: “Connection refused” 错误意味着您的客户端能够访问到服务器,但服务器主动拒绝了连接请求,常见原因及解决方法包括:
- SSH 服务未启动:登录到服务器的本地终端,使用
systemctl status sshd检查服务状态,如果未运行,则使用systemctl start sshd启动它,并使用systemctl enable sshd设置开机自启。 - 防火墙拦截:检查服务器的防火墙规则(如
firewalld或iptables),确保 SSH 服务的端口(默认为 22)已开放,在firewalld中,可以运行firewall-cmd --permanent --add-service=sshfirewall-cmd --reload。 - 端口配置错误:服务器上的 SSH 服务可能运行在非标准端口上,请检查
/etc/ssh/sshd_config文件中的Port设置,并使用-p选项指定正确端口进行连接。 - IP 地址或端口错误:请确认您输入的服务器 IP 地址和端口号完全正确。
问题2:如何修改 CentOS 上 SSH 的默认端口 (22) 以增强安全性?
解答: 修改默认端口是防止自动化攻击的有效手段,请按照以下步骤操作:
- 编辑配置文件:使用文本编辑器(如
vi或nano)打开 SSH 的主配置文件:sudo vi /etc/ssh/sshd_config
- 修改端口:找到
#Port 22这一行,去掉开头的 注释符,并将22修改为您希望使用的新端口号,2222,确保该端口未被其他服务占用。 - 保存并退出。
- 更新防火墙规则:在重启 SSH 服务之前,必须先在防火墙中放行新的端口,使用
firewalld:sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
- 重启 SSH 服务:应用配置更改:
sudo systemctl restart sshd
- 测试新端口连接:在断开当前连接之前,务必开启一个新的终端窗口,使用新端口测试连接是否成功:
ssh -p 2222 your_user@your_server_ip
确认可以成功连接后,再安全地关闭旧会话。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复