ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Quick Reference 速查手册:SSH 连接、SCP 传输与密钥管理实战指南

Quick Reference 速查手册:SSH 连接、SCP 传输与密钥管理实战指南 文档知识库教程开发工具【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址https://gitcode.com/jaywcjlove/reference点击查看免费下载本指南是 jaywcjlove/reference 开源速查表仓库中 docs/ssh.md 的中文深度解读覆盖 SSH 远程连接、远程命令执行、SCP 文件传输、SSH 客户端配置、ProxyJump 跳板机、免密登录与ssh-keygen密钥全生命周期管理。读完本文你将获得一套可直接复制运行的生产级 SSH 日常操作方案并掌握与 chmod 权限实践 配套的密钥文件权限加固方法。入门三种最常见的连接方式SSHSecure Shell是连接远程服务器最常用的加密通道。以下三种连接方式覆盖了开发与运维中最典型的场景。默认端口连接连接到服务器使用默认端口 22$ ssh root192.168.1.5指定端口连接当服务器出于安全考虑将 SSH 端口迁移到非默认端口时使用-p参数显式指定端口$ ssh root192.168.1.5 -p 6222通过 PEM 私钥文件连接云厂商如 AWS发放的密钥对通常以.pem文件提供通过-i指定私钥路径连接$ ssh -i /path/file.pem root192.168.1.5安全提示PEM 私钥文件必须具有 0400 权限否则 OpenSSH 会拒绝使用该密钥。具体权限设置方法可参见本仓库 docs/chmod.md 中的「SSH 权限」章节chmod 400 /path/to/access_key.pem。远程执行命令、脚本与打包下载SSH 不仅用于打开交互式终端更常用于无交互地执行远端命令是自动化运维的基础。执行单条远程命令将命令放在引号中SSH 会在远端执行并把输出回传到本地$ ssh root192.168.1.5 ls -l调用本地脚本到远端执行通过标准输入把本地脚本喂给远端 bash 解释执行无需先把脚本上传到服务器$ ssh root192.168.1.5 bash script.sh从服务器压缩并下载到本地在远端执行tar打包将压缩流重定向输出到本地文件实现边压缩边下载$ ssh root192.168.1.5 tar cvzf - ~/source output.tgzSCP基于 SSH 的文件传输SCP 复用 SSH 的认证与加密通道是单机间传输文件最直接的工具。基本复制方向从远程复制到本地$ scp userserver:/dir/file.ext dest/从本地复制到远程$ scp dest/file.ext userserver:/dir两台服务器之间的直接复制本地仅作中转指挥数据不落地本地$ scp userserver:/file userserver:/dir目录与批量复制复制整个文件夹递归$ scp -r userserver:/dir dest/复制文件夹中的所有文件使用通配符$ scp userserver:/dir/* dest/从服务器文件夹复制到当前目录$ scp userserver:/dir/* .SCP 常用选项速查| 选项 | 说明 | |:-|:-| | scp-r| 递归复制整个目录 | | scp-C| 压缩数据适合传输文本类大文件 | | scp-v| 打印详细信息排查连接问题 | | scp-P8080 | 使用特定端口注意与 ssh 的-p大小写不同 | | scp-B| 批处理模式防止密码提示适合脚本 | | scp-p| 保留时间和模式小写注意与端口-P区分 |SSH 客户端配置文件SSH 的行为由配置文件驱动掌握配置文件即可告别每次敲一长串参数的烦恼。配置位置与职责| 文件路径 | 说明 | |:-|:-| |/etc/ssh/ssh_config| 系统范围的配置 | |~/.ssh/config| 用户特定的配置优先级更高 | |~/.ssh/id_{type}| 私钥 | |~/.ssh/id_{type}.pub| 公钥 | |~/.ssh/known_hosts| 已登录主机指纹记录 | |~/.ssh/authorized_keys| 服务器端授权登录密钥列表 |配置示例定义主机别名在~/.ssh/config中为服务器定义一个逻辑块将主机名、用户、端口、密钥等参数固化下来原文使用 TOML 风格展示实际 ssh_config 语法与其一致Host server1 HostName 192.168.1.5 User root Port 22 IdentityFile ~/.ssh/server1.key配置完成后即可通过别名直接启动连接所有参数自动生效$ ssh server1~/.ssh/config支持定义多个Host块是管理多台服务器、多套密钥的标准做法。ProxyJump通过跳板机访问内网主机当目标主机位于内网、无法直连时可借助一台公网跳板机Bastion Host完成间接连接。单跳连接自动复用本机当前用户名或显式指定用户$ ssh -J proxy_host1 remote_host2$ ssh -J userproxy_host1 userremote_host2多次跳跃用逗号分隔多个跳板机可逐级穿透多台主机$ ssh -J userproxy_host1:port1,userproxy_host2:port2 userremote_host3-JJump Host选项在 OpenSSH 7.3 之后可用相比传统的ProxyCommand写法更简洁且自动复用 SSH 的认证链路。ssh-copy-id一键部署免密登录ssh-copy-id将本机公钥追加到服务器的~/.ssh/authorized_keys中完成密钥认证部署。基本用法首次会提示输入服务器密码$ ssh-copy-id userserver配合~/.ssh/config中的别名使用$ ssh-copy-id server1指定要安装的特定公钥$ ssh-copy-id -i ~/.ssh/id_rsa.pub userserverssh-keygen密钥生成与维护ssh-keygen是 OpenSSH 自带的密钥管理工具覆盖密钥生成、导出、改注释、改口令全流程。快速生成密钥对生成 RSA 4096 位密钥并以邮箱作为密钥注释$ ssh-keygen -t rsa -b 4096 -C yourmail.com选项说明-t密钥类型见下文「钥匙类型」-b密钥中的位数-C提供新注释通常写邮箱便于识别密钥归属交互式与定制生成直接运行ssh-keygen将以交互方式生成密钥并提示输入保存路径与口令passphrase$ ssh-keygen指定私钥文件名生成~/.ssh/filename与~/.ssh/filename.pub$ ssh-keygen -f ~/.ssh/filename从私钥导出公钥丢失了.pub公钥时可从私钥反向导出-y并重定向到公钥文件$ ssh-keygen -y -f private.key public.pub修改注释与口令更改密钥注释-c$ ssh-keygen -c -f ~/.ssh/id_rsa更改私钥口令-p按提示输入新旧口令可借此为裸私钥补充口令保护$ ssh-keygen -p -f ~/.ssh/id_rsa钥匙类型支持以下密钥算法按推荐程度排序rsaed25519现代推荐密钥短、性能好dsa已不推荐安全性弱ecdsa密钥格式PEM传统格式兼容性最好PKCS8更现代的标准格式known_hosts管理已知主机指纹首次连接服务器时OpenSSH 会把服务器公钥指纹写入~/.ssh/known_hosts。当服务器重装系统或更换密钥后连接会因指纹不匹配而失败此时需要更新记录。从 known_hosts 中搜索指定主机-F$ ssh-keygen -F ip/hostname从 known_hosts 中删除指定主机记录-R清除旧指纹后重连即可重新录入$ ssh-keygen -R ip/hostname配套实践SSH 相关文件的权限加固SSH 对密钥与配置文件权限极其敏感权限过宽会直接被拒绝使用。本仓库 docs/chmod.md 的「SSH 权限」一节给出了标准加固命令与本文档docs/ssh.md形成完整的实践闭环$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/id_rsa $ chmod 600 ~/.ssh/id_rsa.pub $ chmod 400 /path/to/access_key.pem权限含义速览八进制600表示仅属主可读写rw-------700表示仅属主可读写执行rwx------400表示仅属主可读。其中~/.ssh目录必须为 700私钥类文件必须为 600 或 400这是 OpenSSH 的安全底线也是排查 Permissions too open 报错的关键。进一步阅读本文档在仓库中的源文件docs/ssh.mdSSH 条目在项目首页的入口README.md「命令」分类下的 SSH 速查入口配套权限实践docs/chmod.mdOpenSSH 官方ssh_config手册man 5 ssh_config包含全部配置选项的权威说明可结合~/.ssh/config深入调优赞分享文档知识库教程开发工具【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址https://gitcode.com/jaywcjlove/reference点击查看免费下载相关推荐OpenSSL 命令行实战速查从密钥生成、证书管理到 TLS 排查Quick Reference 开源速查清单OpenSSL 命令行实战速查从密钥生成、证书管理到 TLS 排查Quick Reference 开源速查清单 本篇技术指南以开源速查清单仓库中的 Ope文档教程Quick Reference 速查手册APTDebian/Ubuntu软件包管理命令全解Quick Reference 速查手册APTDebian/Ubuntu软件包管理命令全解 本文基于 Quick Reference https://li文档教程Git LFS SSH传输配置免密登录与密钥管理实践Git LFS SSH传输配置免密登录与密钥管理实践 引言大文件传输的隐形痛点 在分布式版本控制系统Distributed Version Control开发工具CLI版本控制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表