菜鸟科技网

Linux连接远程服务器有哪些常用命令?

在Linux系统中连接远程服务器是一项常见的操作,通常通过SSH(Secure Shell)协议实现,该协议提供了加密的通信通道,确保数据传输的安全性,以下是关于Linux连接远程服务器的详细命令介绍及使用方法。

Linux连接远程服务器有哪些常用命令?-图1
(图片来源网络,侵删)

基础连接命令

最常用的远程连接命令是ssh,其基本语法为:ssh [用户名]@[服务器IP或域名],以用户root连接IP为168.1.100的服务器,命令为:ssh root@192.168.1.100,首次连接时,系统会提示服务器的公钥指纹,输入yes确认后即可登录,若未指定用户名,则默认使用当前本地系统的用户名。

指定端口号连接

默认情况下,SSH服务使用22号端口,但若服务器修改了端口号,需通过-p参数指定,连接端口为2222的服务器:ssh -p 2222 root@192.168.1.100,注意:端口号需在0-65535之间,且需确保服务器防火墙已开放该端口。

使用密钥对认证

相比密码认证,密钥对认证更安全高效,生成密钥对命令为:ssh-keygen -t rsa -b 4096,执行后会在~/.ssh/目录下生成id_rsa(私钥)和id_rsa.pub(公钥),将公钥上传至服务器的~/.ssh/authorized_keys文件中即可实现免密登录,上传方法可通过ssh-copy-id命令:ssh-copy-id -p 2222 root@192.168.1.100,或手动将公钥内容追加至服务器目标文件。

高级参数使用

  1. 指定私钥文件:若使用非默认路径的私钥,可通过-i参数指定,如:ssh -i /path/to/private_key root@192.168.1.100
  2. 启用压缩:在低速网络下,可通过-C参数启用数据压缩,如:ssh -C root@192.168.1.100
  3. 绑定源端口:通过-b参数指定本地连接的源IP地址,适用于多网卡环境:ssh -b 192.168.1.50 root@192.168.1.100
  4. 静默模式:使用-q参数可减少输出信息,适合脚本调用:ssh -q root@192.168.1.100 'command'

通过代理服务器连接

若需通过中间代理服务器连接目标服务器,可使用-J参数:ssh -J proxy_user@proxy_host:port target_user@target_hostssh -J jump_user@192.168.1.50:2222 root@192.168.1.100,代理服务器需配置允许端口转发。

Linux连接远程服务器有哪些常用命令?-图2
(图片来源网络,侵删)

配置文件优化

~/.ssh/config文件中可配置常用连接参数,简化命令。

Host server1  
    HostName 192.168.1.100  
    User root  
    Port 2222  
    IdentityFile ~/.ssh/server1_key  
    Compression yes  

配置后,直接通过ssh server1即可连接,无需重复输入参数。

常见问题解决

  1. 连接超时:检查网络连通性(ping)、服务器防火墙规则(如iptablesfirewalld)及SSH服务状态(systemctl status sshd)。
  2. Permission denied (publickey,password):确认公钥是否正确上传至服务器,私钥权限是否为600chmod 600 ~/.ssh/id_rsa),或尝试使用密码认证排查问题。

其他相关工具

  1. scp:基于SSH的文件传输工具,语法为scp [选项] [源路径] [目标路径],将本地文件file.txt上传至服务器:scp -P 2222 file.txt root@192.168.1.100:/root/
  2. sftp:交互式文件传输工具,启动后类似FTP操作,如put上传、get下载。
  3. mosh:基于SSH的替代工具,支持连接中断后自动重连和实时显示优化,需在服务器端安装。

安全建议

  1. 禁用root直接登录:修改服务器SSH配置文件/etc/ssh/sshd_config,设置PermitRootLogin no,并通过普通用户sudo提权。
  2. 更改默认端口:将Port 22修改为其他高位端口(如2222),减少自动化攻击扫描。
  3. 使用Fail2ban:防止暴力破解,通过监控日志自动封禁恶意IP。

表格总结常用SSH参数

参数 作用 示例
-p 指定端口号 ssh -p 2222 user@host
-i 指定私钥文件 ssh -i ~/.ssh/key user@host
-C 启用压缩 ssh -C user@host
-q 静默模式 ssh -q user@host 'command'
-J 通过代理连接 ssh -J proxy@proxy_host user@host
-v 详细输出(调试用) ssh -v user@host

相关问答FAQs

问题1:如何解决SSH连接时出现的“Could not resolve hostname”错误?
解答:该错误通常表示无法解析服务器主机名,可尝试以下步骤:

  1. 检查主机名或IP地址是否输入正确,可通过ping命令测试网络连通性(如ping 192.168.1.100)。
  2. 确认本地DNS配置是否正确,或尝试使用IP地址代替主机名。
  3. 若使用域名,检查/etc/resolv.conf文件中的DNS服务器地址是否有效,或联系网络管理员确认域名解析是否正常。

问题2:SSH连接成功后如何高效传输文件?
解答:推荐使用scpsftp工具:

Linux连接远程服务器有哪些常用命令?-图3
(图片来源网络,侵删)
  • scp:适合单次文件传输,例如下载服务器文件到本地:scp -P 2222 user@192.168.1.100:/path/to/file /local/path/;上传本地文件到服务器:scp -P 2222 /local/file user@192.168.1.100:/remote/path/
  • sftp:适合批量文件操作,输入sftp -P 2222 user@192.168.1.100后,可通过put上传、get下载、ls查看目录等命令交互式管理文件。
    若需传输大量文件,建议使用rsync工具,支持增量同步和断点续传,rsync -avz -e "ssh -p 2222" /local/dir/ user@192.168.1.100:/remote/dir/
分享:
扫描分享到社交APP
上一篇
下一篇