当前位置:首页 > 云服务器 > 正文

linux连接远程服务器命令

使用 ssh 用户名@服务器IP 或 ssh 用户名@域名 可连接 Linux 远程服务器,首次需

基础语法与核心命令

ssh 命令(推荐)

功能 命令示例 说明
基础连接 ssh user@hostname user为远程用户名,hostname可为IP或域名
指定端口 ssh -p 2222 user@hostname 默认SSH端口为22,若修改需通过-p指定
首次连接保存主机信息 ssh -o StrictHostKeyChecking=no user@hostname 跳过首次连接时的RSA密钥验证提示(仅测试环境使用)
交互式终端 ssh user@hostname 直接进入远程Shell,支持Tab补全与命令历史记录
执行单条命令 ssh user@hostname "ls /home" 远程服务器执行指定命令后自动退出
本地端口转发 ssh -L 8080:localhost:80 user@hostname 将本地8080端口映射至远程服务器的80端口(用于调试Web应用)
X11图形界面转发 ssh -X user@hostname 启用X11转发,可在本地显示远程GUI程序(需安装XQuartz等依赖)

telnet 命令(不推荐)

警告:Telnet以明文传输数据,存在严重安全隐患,仅适用于非敏感场景测试。

| 命令示例 | 说明 |

|——————-|————————–|

| telnet hostname | 默认使用23端口建立TCP连接 |

| telnet hostname 3306 | 连接MySQL默认端口 |

linux连接远程服务器命令 第1张

linux连接远程服务器命令 第2张

身份验证方式

类型 配置方法 优点 缺点
密码认证 输入user@hostname后直接输入密码 简单易用 易受暴力免费攻破
密钥认证 生成SSH密钥对:ssh-keygen → 将公钥上传至服务器~/.ssh/authorized_keys 安全性高,免重复输入 初始配置稍复杂
混合模式 同时启用密码+密钥认证 兼顾便利与安全 仍需管理两种认证方式

密钥生成示例

# 生成ED25519密钥(推荐) ssh-keygen -t ed25519 -C "your_email@example.com" # 输出公钥内容(需粘贴到服务器) cat ~/.ssh/id_ed25519.pub


高级操作技巧

多跳代理连接

# 通过中间跳板机A连接到目标服务器B ssh userB@B_host -t "ssh userC@C_host" # 或使用ProxyJump配置(~/.ssh/config) Host jumphost HostName A_host User userA Host finalhost HostName B_host User userB ProxyJump jumphost

后台任务管理

场景 解决方案 说明
长时间运行任务 nohup command &> output.log & 断开SSH后任务继续执行,日志存入文件
实时查看日志 tail -f output.log 监控正在写入的日志文件
断线重连保护 screen/tmux 创建持久化会话,重新连接后恢复现场

文件传输加速方案

工具 命令示例 特点
scp scp local_file user@host:/remote/path 基于SSH协议加密传输
rsync rsync -avzP local_dir/ user@host:/remote/dir/ 增量同步+压缩,适合大文件传输
lftp `lftp -c “open host; put file”“ FTP客户端,支持断点续传


常见问题与解答

Q1: 连接时报 “Permission denied (publickey)” 怎么办?

A: 可能原因及解决方案:

  1. 未授权密钥:检查服务器~/.ssh/authorized_keys是否包含当前客户端公钥;
  2. 权限问题:确保客户端私钥文件权限为600(chmod 600 ~/.ssh/id_rsa);
  3. 路径错误:默认查找~/.ssh/id_rsa,若自定义路径需通过-i指定私钥文件;
  4. SELinux限制:临时禁用验证:sudo setenforce 0(生产环境慎用)。

Q2: 如何批量执行命令到多台服务器?

A: 推荐两种方案:

  1. 并行执行(使用parallel): # 创建主机列表 hosts.txt echo "server1 server2 server3" > hosts.txt # 并行执行命令 parallel --file hosts.txt 'ssh {} "df -h"'
  2. 串行执行(适合顺序依赖场景): for host in server1 server2 server3; do ssh $host "systemctl restart httpd" || echo "$host failed" done


补充注意事项

  1. 防火墙配置:确保服务器开放SSH端口(默认22),可通过ufw allow 22(Ubuntu)或firewall-cmd --add-port=22/tcp(CentOS)放行;
  2. 超时设置:通过ClientAliveInterval和ClientAliveCountMax调整无操作超时时间(修改/etc/ssh/sshd_config);
  3. 日志审计:查看连接记录 journalctl -u sshd,定位异常登录尝试;
  4. 版本兼容性:新旧版OpenSSH可能存在算法差异,建议统一使用OpenSSH 8.0+

linux连接远程服务器命令 第3张

0