You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH从Bitbucket/GitHub私有仓库下载文件并授权用户更新?

问题解答

一、用SSH实现更新分发:修复连接错误+可行方案

先说说你当前paramiko连接报错的问题——这是几个参数配置错了:

  • 端口不对:Bitbucket的SSH服务用的是默认22端口,不是8080(8080一般是HTTP代理这类服务用的);
  • 用户名错了:SSH连接Bitbucket仓库的固定用户名是git,不是你写的那个下载URL;
  • 主机地址不该用IP:直接连bitbucket.org就行,IP可能会变动,而且Bitbucket的SSH服务绑定在这个域名上。

修复后的代码示例如下:

import paramiko
from paramiko.sftp_client import SFTPClient

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
    # 正确连接Bitbucket SSH服务
    ssh.connect(
        hostname='bitbucket.org',
        port=22,
        username='git',
        key_filename='C:/Users/Django/.ssh/id_rsa'  # 用正斜杠避免转义麻烦,更简洁
    )
    
    # 方案1:用SFTP读取仓库内的versions.gz(假设文件在仓库的downloads目录下)
    sftp = ssh.open_sftp()
    # 这里的路径是仓库内的相对路径,比如你的仓库根目录下的downloads/versions.gz
    with sftp.open('downloads/versions.gz', 'rb') as f:
        versions_data = f.read()
        # 这里可以解析versions_data,获取最新版本的下载信息
    
    # 方案2:直接克隆仓库到临时目录(适合需要完整仓库内容的场景)
    # stdin, stdout, stderr = ssh.exec_command('git clone git@bitbucket.org:Tysondogerz/ssh.git /tmp/ssh_repo')
    # 之后就可以从/tmp/ssh_repo/downloads/versions.gz读取文件
    
finally:
    ssh.close()

至于能不能用SSH实现你的流程:完全可以,但要分情况:

  • 如果versions.gz是存在仓库代码目录里的:用SSH克隆仓库或者SFTP直接读取都没问题,全程用SSH密钥认证,不需要密码;
  • 如果versions.gz是Bitbucket Release里的下载文件:SSH不是最直接的方式,不过你可以把Release的下载链接存在仓库里,通过SSH拉取这个链接列表后再下载,或者用Bitbucket API结合访问令牌(但API是HTTPS的)。

二、授权他人访问私有Bitbucket仓库下载更新

Bitbucket根本没有“只能用公开仓库或基础认证”的限制,有好几种安全的方式授权他人访问:

  • 添加仓库成员:在仓库的「Settings」→「Users and groups」里加对方的Bitbucket账号,给「Read」权限,对方就能用自己的账号+SSH密钥(或密码/访问令牌)拉取更新;
  • 部署密钥:在仓库的「Settings」→「Deployment keys」里添加对方的SSH公钥,对方用对应的私钥就能通过SSH访问仓库,这种方式不需要对方有Bitbucket账号,适合给外部协作人员或自动化脚本用;
  • App Passwords:如果对方习惯用HTTPS,让他在自己的Bitbucket账号里生成带「Repository read」权限的「App Password」,然后用用户名:AppPassword作为基础认证信息拉取仓库;
  • 临时共享链接:Bitbucket支持生成私有仓库的临时共享链接,允许他人在限定时间内下载内容,适合临时分发更新。

内容的提问来源于stack exchange,提问作者user9155788

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:40:29