031 ssh命令

命令说明

ssh(Secure Shell)用于加密登录远程主机并执行命令,是 Linux 远程管理的事实标准。支持密码与密钥认证、端口转发、跳板连接等。

语法

ssh [选项]... [用户@]主机 [命令]

常用参数

参数说明
-p 端口指定远程 SSH 端口(默认 22)
-i 密钥指定私钥文件,如 -i ~/.ssh/id_rsa
-l 用户指定登录用户名
-o 选项传递配置项,如 -o StrictHostKeyChecking=no
-C启用压缩传输
-v详细模式,调试连接问题
-L本地端口转发:-L 本地端口:目标:目标端口
-R远程端口转发
-D动态(SOCKS)代理转发
-N只建立连接不执行命令,常用于端口转发
-J通过跳板机(ProxyJump)连接目标

使用示例

$ ssh user@192.168.1.10

以 user 登录远程主机

$ ssh -p 2222 user@host

指定非标准端口登录

$ ssh user@host "df -h"

在远程执行命令后退出

$ ssh -i ~/.ssh/id_ed25519 user@host

用指定私钥登录

$ ssh -L 8080:localhost:80 user@host

本地 8080 转发到远程 80

$ ssh -J user@jump user@target

经跳板机连接目标

$ ssh -N -f -L 3306:db:3306 user@host

后台运行端口转发

实用技巧

  • 免密登录:ssh-keygen 生成密钥后,ssh-copy-id user@host 把公钥写入远端 authorized_keys。
  • 配置文件 ~/.ssh/config 可为每台主机设 HostName/User/Port/IdentityFile,之后直接 ssh 别名 即可。
  • 首次连接会校验主机指纹;known_hosts 冲突报 WARNING 时,确认安全后用 ssh-keygen -R 主机 清除旧记录。
  • 排错用 ssh -vvv 查看握手细节;连不上先检查端口、防火墙、sshd 服务状态。
  • 生产环境建议禁用密码登录(PasswordAuthentication no),改用密钥。