在Linux中连接远程服务器,最标准且通用的命令是ssh,通过ssh命令即可安全登录远程主机执行操作。
linux ssh连接服务器命令的基本用法
ssh(Secure Shell)是Linux系统下连接远程服务器的核心工具,它的基本语法非常简单:ssh 用户名@服务器IP地址,你要连接IP为168.1.10的服务器,并使用root用户登录,命令就是:
ssh root@192.168.1.10
执行后,系统会提示输入密码,输入正确的密码即可进入远程服务器的命令行界面,这个过程中,ssh会先检查服务器的指纹信息,首次连接时会出现确认提示,直接输入yes并回车即可。
指定端口连接
默认情况下,ssh使用22号端口,如果服务器为了安全修改了端口,就需要用-p参数指定,例如连接端口为2222的服务器:
ssh -p 2222 root@192.168.1.10
业内专家指出,修改默认端口是降低暴力破解风险的有效手段,生产环境普遍采用这一做法。
使用其他用户名连接
如果当前本地用户名和目标服务器用户名不同,直接写用户名@IP就行,但若想省略用户名,也可以先用-l参数指定:
ssh -l admin 192.168.1.10
linux ssh连接服务器命令的常用参数详解
除了-p和-l,ssh还有不少实用参数,熟悉它们能提升操作效率,下表汇总了最常见的几个:
| 参数 | 作用 | 示例 |
|---|---|---|
-p |
指定端口号 | ssh -p 2222 user@ip |
-l |
指定登录用户名 | ssh -l admin 192.168.1.10 |
-i |
指定私钥文件 | ssh -i ~/.ssh/id_rsa user@ip |
-v |
显示调试信息,用于排查问题 | ssh -v user@ip |
-C |
启用压缩传输,适合慢网络 | ssh -C user@ip |
-X |
转发X11图形界面 | ssh -X user@ip |
调试模式排查问题
当ssh连接异常时,使用-v参数能看到详细的握手过程,包括认证方法、端口连接状态等,多数情况下,连接失败的原因都能从输出日志中找到线索,比如日志中出现Permission denied,说明密码或密钥有误;出现Connection timed out,则多半是网络或防火墙问题。
linux远程连接服务器不成功怎么办
实际工作中,远程连接失败是家常便饭,别急,按下面几个步骤逐一排查,绝大多数问题都能解决。
第一步:检查网络连通性
先用ping命令确认服务器是否可达:
ping 192.168.1.10
如果ping不通,说明网络不通或服务器宕机,检查本地网络、服务器状态或云服务商控制台。
第二步:确认SSH服务状态
如果ping通但连不上,可能是SSH服务没启动,在服务器本地或通过管理终端执行:
systemctl status sshd
如果状态不是active (running),启动它:
systemctl start sshd
并设置开机自启:
systemctl enable sshd
第三步:检查防火墙规则
防火墙拦截是常见原因,在服务器上执行:
ufw status
查看22端口(或自定义端口)是否放行,若未放行,执行:
ufw allow 22/tcp
如果用的是firewalld,则改用:
firewall-cmd --permanent --add-port=22/tcp firewall-cmd --reload
第四步:核对用户和权限
某些服务器禁止root直接登录,检查/etc/ssh/sshd_config中的PermitRootLogin项,如果是no,需要改用普通用户登录,或修改配置并重启SSH服务。
进阶玩法:基于密钥的免密登录与文件传输
密码登录虽然简单,但每次输入密码略显繁琐,且安全性不如密钥对,配置SSH密钥后,可以安全免密登录。
生成密钥对
在本地Linux机器上运行:
ssh-keygen -t rsa -b 4096
一路回车即可,默认生成~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。
上传公钥到服务器
使用ssh-copy-id命令一键上传:
ssh-copy-id root@192.168.1.10
输入一次密码后,公钥会自动追加到服务器的~/.ssh/authorized_keys文件中,之后再用ssh连接,就不需要密码了。
使用scp和sftp传输文件
连接服务器不只是为了敲命令,往往还需要传文件。scp命令可以安全地复制文件:
scp /path/local.txt root@192.168.1.10:/root/
从服务器拉取文件则反向操作:
scp root@192.168.1.10:/root/remote.txt /path/local/
sftp则提供了交互式的文件管理界面:
sftp root@192.168.1.10
进入后可以用put上传、get下载,类似ftp但全程加密。
关于连接超时的优化建议
如果网络延迟较高,可以在ssh命令中加入-o选项调整参数,例如设置连接超时时间为10秒:
ssh -o ConnectTimeout=10 root@192.168.1.10
这样即使目标主机无响应,也不会一直卡在等待中,多用于自动化脚本或批量操作场景。
linux怎么命令连接网络连接到服务器:常见问题解答
为什么我执行ssh命令后提示“Connection refused”?
这个错误通常表示目标服务器的SSH服务没有运行,或者端口被防火墙拦截,先在服务器本地执行systemctl status sshd确认服务状态,再检查防火墙是否放行了对应端口,如果服务正常且防火墙已放行,那就是服务器上sshd_config配置了限制规则,比如只允许特定IP访问。
ssh端口改成非默认后,scp命令需要怎么调整?
scp命令同样支持-P(注意大写)参数指定端口。
scp -P 2222 /path/file.txt root@192.168.1.10:/root/
注意,scp的端口参数是大写-P,而ssh登录是小写-p,这是一个容易混淆的细节。
使用密钥登录时,私钥权限需要设置成多少?
私钥文件权限过宽会被拒绝使用,正确的权限是600,即仅所有者可读写,设置命令为:
chmod 600 ~/.ssh/id_rsa
公钥文件权限可以放宽到644,行业共识认为,私钥权限必须严格保密,否则等于把服务器钥匙交到了别人手里。
最后想说的是,ssh连接命令本身并不复杂,关键在于理解其原理和常用参数,多实践几次,熟悉了ssh、scp、sftp这几个命令的配合使用,你就能在Linux远程管理的世界里游刃有余了。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/787254.html


