在CentOS 7系统中实现远程连接另一台CentOS 7服务器是日常运维和管理的常见需求,通过远程连接,管理员可以高效地执行命令管理文件、部署服务以及监控系统状态,无需直接操作物理机,本文将详细介绍如何使用SSH协议实现CentOS 7之间的远程连接,涵盖环境准备、连接方式、安全配置及常见问题解决方法。

环境准备与基础配置
在开始远程连接前,确保两台CentOS 7服务器已正确配置网络环境,检查目标服务器的IP地址是否可达,使用ping命令测试网络连通性,例如ping 192.168.1.100,若目标服务器位于局域网外,需确保防火墙和云安全组已放行SSH默认端口22,建议为目标服务器设置静态IP地址,避免因IP变动导致连接中断。
目标服务器需启用SSH服务,CentOS 7默认已安装OpenSSH服务,可通过systemctl status sshd检查服务状态,若未安装,使用yum install openssh-server安装后,执行systemctl start sshd并设置开机自启systemctl enable sshd,确认SSH服务配置文件/etc/ssh/sshd_config中的PermitRootLogin和PasswordAuthentication参数根据需求调整,默认允许root密码登录,但出于安全考虑,建议后续配置密钥认证。
使用SSH命令行远程连接
SSH(Secure Shell)是加密的远程协议,可通过命令行工具实现安全连接,基本语法为ssh username@target_ip,例如ssh root@192.168.1.100,首次连接时,系统提示保存目标主机的SSH密钥指纹,输入yes即可建立信任关系,若需指定SSH端口(如非默认22),添加-p参数,例如ssh -p 2222 user@192.168.1.100。
为提升连接效率,可配置SSH客户端别名,编辑~/.ssh/config文件,添加如下内容:

Host server1
HostName 192.168.1.100
User admin
Port 22 保存后,直接通过ssh server1即可快速连接,无需重复输入IP和用户名,使用ssh -X参数可启用X11转发,在远程服务器上运行图形化程序,例如ssh -X user@192.168.1.100后执行firefox,图形界面将本地显示。
密钥认证配置与安全加固
相比密码认证,SSH密钥认证更安全且便捷,在客户端生成密钥对:ssh-keygen -t rsa -b 4096,连续按回车使用默认路径即可,生成的公钥(~/.ssh/id_rsa.pub)需上传至目标服务器的~/.ssh/authorized_keys文件中,可通过ssh-copy-id user@192.168.1.100自动完成传输,或手动将公钥内容追加至目标文件。
为确保安全,需设置正确的文件权限:目标服务器上~/.ssh目录权限应为700,authorized_keys文件权限为600,在/etc/ssh/sshd_config中禁用密码认证,设置PasswordAuthentication no后重启SSH服务systemctl restart sshd,仅持有私钥的用户才能登录,有效防止暴力破解。
高级功能与故障排查
SSH支持端口转发和隧道功能,可安全传输数据,通过ssh -L 8080:target:80将本地8080端口映射至目标服务器的80端口,访问http://localhost:8080即可浏览目标Web服务,若远程连接缓慢,可调整/etc/ssh/sshd_config中的UseDNS no以关闭DNS反向解析,或使用Compression yes启用压缩。

常见问题中,“连接超时”通常因防火墙或SELinux导致,检查firewall-cmd --list-ports确认22端口已开放,或临时关闭SELinux测试setenforce 0。“拒绝访问”错误多因权限错误或密钥不匹配,需检查authorized_keys及权限,若需限制登录用户,可在sshd_config中设置AllowUsers user1 user2,仅允许指定用户连接。
相关问答FAQs
Q1: 如何在CentOS 7上禁用root用户远程登录?
A1: 编辑/etc/ssh/sshd_config文件,找到PermitRootLogin行,将其值改为no,保存后执行systemctl restart sshd重启服务,此后,root用户无法直接远程登录,需通过普通用户sudo提权操作,提升系统安全性。
Q2: SSH连接时提示“Permission denied (publickey,password)”如何解决?
A2: 首先检查目标服务器~/.ssh/authorized_keys文件是否包含正确的公钥,且权限为600;其次确认客户端私钥路径正确(默认~/.ssh/id_rsa);最后检查sshd_config中PubkeyAuthentication是否为yes,必要时重启SSH服务,若问题依旧,可尝试重新生成密钥对并上传。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复