关于 ssh
用于建立和管理远程机器 SSH 连接的 Skill,涵盖身份验证、密钥管理、命令执行、文件传输、配置与故障排查,并提供 Windows PowerShell 指引。
主要功能
- 01密码与密钥身份验证
- 02SSH 密钥生成与管理
- 03SSH 配置与已知主机管理
- 04执行远程命令
- 05使用 SCP 传输文件
- 06排查连接问题
适用场景
- 01连接远程机器
- 02在远程主机上运行命令
- 03在本地与远程机器间传输文件
- 04排查 SSH 连接或密钥权限问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openhands/ extensions --skill ssh安装后在 Claude Code 中输入/ssh确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.md.plugin/plugin.jsonreferences/windows.md详细介绍
SSH 技能
此技能提供建立和管理到远程机器的 SSH 连接的功能。
有关 SSH 配置创建、密钥路径、ssh-agent 和权限的 Windows PowerShell 等效操作,请参阅 references/windows.md。
功能
- 使用密码或基于密钥的身份验证建立 SSH 连接
- 生成和管理 SSH 密钥对
- 配置 SSH,以便更轻松地连接
- 在远程机器上执行命令
- 在本地和远程机器之间传输文件
- 管理 SSH 配置和已知主机
身份验证方法
密码身份验证
ssh username@hostname
出现提示时,应向用户询问其密码或私钥。
基于密钥的身份验证
生成新的 SSH 密钥对:
ssh-keygen -t ed25519 -f ~/.ssh/key_name -C "comment" -N ""
将公钥复制到远程服务:
ssh-copy-id -i ~/.ssh/key_name.pub username@hostname
使用私钥连接:
ssh -i ~/.ssh/key_name username@hostname
SSH 配置
创建或编辑 SSH 配置文件,以便更轻松地连接:
mkdir -p ~/.ssh
cat > ~/.ssh/config << 'EOF'
Host alias
HostName hostname_or_ip
User username
IdentityFile ~/.ssh/key_name
Port 22
ServerAliveInterval 60
EOF
chmod 600 ~/.ssh/config
然后使用别名连接:
ssh alias
常见 SSH 选项
-p PORT:连接到指定端口-X:启用 X11 转发-L local_port:remote_host:remote_port:设置本地端口转发-R remote_port:local_host:local_port:设置远程端口转发-N:不执行远程命令(适用于端口转发)-f:在后台运行-v:详细模式(增加 v 的数量可提高详细程度)
使用 SCP 传输文件
将文件复制到远程服务:
scp /path/to/local/file username@hostname:/path/to/remote/directory/
从远程服务复制文件:
scp username@hostname:/path/to/remote/file /path/to/local/directory/
递归复制目录:
scp -r /path/to/local/directory username@hostname:/path/to/remote/directory/
SSH Agent
启动 SSH Agent:
eval "$(ssh-agent -s)"
向 Agent 添加密钥:
ssh-add ~/.ssh/key_name
故障排除
- 检查远程服务上的 SSH 服务状态:
systemctl status sshd - 确认 SSH 端口已开放:
nc -zv hostname 22 - 排查连接问题:
ssh -vvv username@hostname - 检查权限:SSH 私钥应具有 600 权限(
chmod 600 ~/.ssh/key_name) - 验证 known_hosts:如果主机密钥已更改,请使用
ssh-keygen -R hostname删除旧条目
安全管理 SSH 密钥
使用适当权限进行本地存储
最基本的方法是确保文件权限设置正确:
# Set correct permissions for private keys
chmod 600 ~/.ssh/id_ed25519
# Set correct permissions for public keys
chmod 644 ~/.ssh/id_ed25519.pub
# Set correct permissions for SSH directory
chmod 700 ~/.ssh
评论
支持 Markdown