mcpField
S
ssh

ssh

github.com/openhands云与 DevOps1751.2k 次安装今天更新
代码仓库

关于 ssh

用于建立和管理远程机器 SSH 连接的 Skill,涵盖身份验证、密钥管理、命令执行、文件传输、配置与故障排查,并提供 Windows PowerShell 指引。

主要功能

  1. 01密码与密钥身份验证
  2. 02SSH 密钥生成与管理
  3. 03SSH 配置与已知主机管理
  4. 04执行远程命令
  5. 05使用 SCP 传输文件
  6. 06排查连接问题

适用场景

  1. 01连接远程机器
  2. 02在远程主机上运行命令
  3. 03在本地与远程机器间传输文件
  4. 04排查 SSH 连接或密钥权限问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/openhands/extensions --skill ssh

安装后在 Claude Code 中输入/ssh确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
.plugin/
plugin.json
references/
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