作为运维工程师的你,是否每天连服务器进行这样操作:ssh -p 2222 user@192.168.2.105输密码、输密码、再输密码;内网机器要先登跳板,再登目标,来回切窗口;想本地连远程数据库、内网服务,折腾半天不通?
ssh远不止 “远程登录” 这么简单。今天介绍ssh高级用法:配置文件一键登录、免密安全登录、三种端口转发、跳板机直连、安全加固。
ssh-keygen -t ed25519 -C "ceshi2026@qq.com"
ssh-copy-id -p 端口 user@主机IPssh-copy-id -p 22 root@192.168.2.105

chmod 700 ~/.ssh

ssh 别名配置示例(本地~/.ssh/config)
touch ~/.ssh/configchmod 700 ~/.ssh/configmkdir -p ~/.ssh/sockchmod 700 ~/.ssh/sock
#全局通用配置,所有服务器统一生效Host *Compression yesServerAliveInterval 60ServerAliveCountMax 3IdentityFile ~/.ssh/id_ed25519ControlMaster autoControlPath ~/.ssh/sock/%h_%p_%r.sockControlPersist 4h#业务机app01-prodHost app01HostName 192.168.2.105User rootPort 22#生产app02Host app02HostName 192.168.2.104User rootPort 22


#全局默认Host *Compression yesServerAliveInterval 60ServerAliveCountMax 3IdentityFile ~/.ssh/id_ed25519ControlMaster autoControlPath ~/.ssh/sock/%h_%p_%r.sockControlPersist 4h#跳板机Host jumpHostName 192.168.2.104User rootPort 22IdentityFile ~/.ssh/id_ed25519#内网机器(通过跳板)Host appHostName 192.168.2.xxUser ubuntuProxyJump jump
ssh jump #首次会保存hostssh app #再直连内网机器,自动过跳板
ssh app场景:本地访问远程mysql/redis/ 内网网页
ssh -L 3307:127.0.0.1:3306 user@远程IPssh -R 8080:127.0.0.1:80 user@公网服务器场景:走服务器访问内网资源
ssh -D 1080 user@远程IPssh -J jump-user@跳板IP:端口 内网用户@内网IPHost innerHostName 192.168.1.200User appuserProxyJump jump
修改 sshd_config 前,务必保留一个已登录的 SSH 会话用于回滚,防止配置错误导致无法登录。
PasswordAuthentication noChallengeResponseAuthentication noPubkeyAuthentication yes
port 2222PermitRootLogin noClientAliveInterval 300ClientAliveCountMax 2
systemctl restart sshd把这些配置存好,以后连服务器、调网络、做穿透,全都行云流水。如果你觉得文章对你运维工作有帮助,记得点赞加关注。