SSH远程服务器密码连接技能,当用户提供IP、用户名、密码后激活,支持执行命令、查看配置、诊断问题、文件操作等运维操作。
Catfee SSH Skill是一项面向实际任务的技能,主要用于通过密码认证SSH连接远程服务器,执行运维操作;已安装 Posh-SSH 模块(首次使用时自动安装);
Docker 操作;进程和端口;输出格式化;获取完整命令输出:;连续执行多个命令时保持同一个 session:;执行修改操作;执行需要sudo权限的操作:。
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
通过密码认证SSH连接远程服务器,执行运维操作。
已安装 Posh-SSH 模块(首次使用时自动安装)。
# 安装模块(如果未安装)
if (!(Get-Module -ListAvailable Posh-SSH)) {
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser
Install-Module -Name Posh-SSH -Force -Scope CurrentUser -AllowClobber
}
Import-Module Posh-SSH
# 创建凭证并连接(用户提供:IP、用户名、密码)
$cred = New-Object System.Management.Automation.PSCredential("$username", (ConvertTo-SecureString "$password" -AsPlainText -Force))
$session = New-SSHSession -ComputerName "$ip" -Credential $cred -AcceptKey
# 执行命令
Invoke-SSHCommand -SessionId $session.SessionId -Command "command"
# 关闭连接
Remove-SSHSession -SessionId $session.SessionId
Invoke-SSHCommand -SessionId $session.SessionId -Command "hostname && uname -a && cat /etc/os-release"
Invoke-SSHCommand -SessionId $session.SessionId -Command "systemctl status nginx" Invoke-SSHCommand -SessionId $session.SessionId -Command "systemctl status docker"
Invoke-SSHCommand -SessionId $session.SessionId -Command "cat /path/to/file" Invoke-SSHCommand -SessionId $session.SessionId -Command "ls -la /path/to/dir"
Invoke-SSHCommand -SessionId $session.SessionId -Command "tail -100 /var/log/nginx/error.log" Invoke-SSHCommand -SessionId $session.SessionId -Command "journalctl -u nginx -n 100"
Invoke-SSHCommand -SessionId $session.SessionId -Command "nginx -t 2>&1" Invoke-SSHCommand -SessionId $session.SessionId -Command "cat /etc/nginx/nginx.conf" Invoke-SSHCommand -SessionId $session.SessionId -Command "ls -la /etc/nginx/conf.d/" Invoke-SSHCommand -SessionId $session.SessionId -Command "cat /etc/nginx/conf.d/*.conf"
Invoke-SSHCommand -SessionId $session.SessionId -Command "docker ps -a" Invoke-SSHCommand -SessionId $session.SessionId -Command "docker logs container_name --tail 100" Invoke-SSHCommand -SessionId $session.SessionId -Command "docker-compose ps"
Invoke-SSHCommand -SessionId $session.SessionId -Command "ps aux | grep nginx" Invoke-SSHCommand -SessionId $session.SessionId -Command "netstat -tlnp" Invoke-SSHCommand -SessionId $session.SessionId -Command "ss -tlnp"
获取完整命令输出:
Invoke-SSHCommand -SessionId $session.SessionId -Command "command" | Select-Object -ExpandProperty Output | Out-String -Width 4000
连续执行多个命令时保持同一个 session:
$session = New-SSHSession -ComputerName "$ip" -Credential $cred -AcceptKey Invoke-SSHCommand -SessionId $session.SessionId -Command "cmd1" Invoke-SSHCommand -SessionId $session.SessionId -Command "cmd2" Invoke-SSHCommand -SessionId $session.SessionId -Command "cmd3" Remove-SSHSession -SessionId $session.SessionId
执行需要sudo权限的操作:
Invoke-SSHCommand -SessionId $session.SessionId -Command "sudo nginx -s reload" Invoke-SSHCommand -SessionId $session.SessionId -Command "sudo systemctl restart docker"
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章