请注意,GitHub也有断供危机。

如果你有GitHub私有库,是时候重新思考安全性,也是时候制定备份策略。

这不是杞人忧天,也不只温馨提示,而是已经发生的事实。

一位伊朗程序员,一觉醒来GitHub帐号无法正常使用。一位克里米亚开发者,个人网页直接404。甚至一位居住在芬兰的伊朗籍工程师,GitHub帐号也被殃及“制裁”。

开源社区GitHub,毕竟是一家注册在美国的公司。

没有提醒直接限制

事情从一个最新GitHub项目说起。

名为GitHub Must Be a Free Platform,由一位伊朗地区开发者发起。

这位叫Hamed(哈梅德)的程序员,GitHub私有库不能访问了。

而且其后得知,由于伊朗受到美国制裁,目前伊朗地区的GitHub帐号均无法正常使用。

在这个项目地址中,支持者列表中伊朗国旗??满目皆是,可能都是受影响用户。

https://github.com/1995parham/github-do-not-ban-us

目前,该项目已获1232星。而且GitHub官方并没有给出解释和回复。

哈梅德小哥还专门写了博客,介绍了自己的完整遭遇。

哈梅德是伊朗籍且base伊朗的程序员,从2012年开始使用GitHub。

2019年1月,当微软宣布GitHub私有库也无限免费后,哈梅德更是将代码完全托管到了GitHub。

并且哈梅德还是一个对开源深怀热情的开发者,之前还参加了Hacktoberfest。但那时稍微有点征兆,因为美国对伊朗禁运,没有收到活动T恤。

然而真正悲剧的是,7月25日一觉醒来,收到一封GitHub邮件,宣布由于美国制裁伊朗,受相关法律限制,伊朗地区GitHub账户将受影响:

邮件中说,核心限制的是个人通信的GitHub公有库服务。

但事情没这么简单。

哈梅德很快发现,个人GitHub页面也被禁止,共有开源库也不能访问了。

最可气的是,GitHub的这一波限制,来得毫无征兆,也没有事先通知开发者备份。

哈梅德通过推特等喊话GitHub的CEO,也没有任何回应。

另外,只是按地区或IP地址限制?naive。

哈梅德还介绍了一位伊朗籍的芬兰开发者的遭遇:

即便人在芬兰,国籍是伊朗,也能也会受到GitHub限制。

克里米亚

无独有偶,克里米亚的21岁程序员,也遭遇类似情况。

同样2天前,他像往常一样登上GitHub,却发现了一条这样的消息:

大意是根据美国法规,您的GitHub帐号被限制了。

个人账号的话,只能访问GitHub免费的公开存储服务,作个人交流 (Personal Communications) 用途。

惊恐之余,他在自己的开源项目GameHub里,提交了一条Issue,向大家汇报被限制后的情况。

这件事情,很快引起了世界的关心。

昨天,消息登上Hacker News四小时,热度便超过了200点。

而提交Issue之后,程序员在GitHub上也收到了超过70条回复。

更多GitHub帐号限制以及解决方案,也被热心网友给出。

具体限制权限

关于自己帐号具体受到了哪些限制,程序员一一列举:

一是,托管在GitHub Pages上面的个人网站404了。

二是,不能创建私有repo了。

三是,从前创建的私有repo,现在也禁用了。git clone命令,返回的是403。

四是,可以创建公开repo,但是不能删除。

私有Repo已禁用

那么都有哪些地区的用户受到了这样的灾害?

详情页面里,有这样一个列表:

对此,GitHub还说明了,就算只是到这些地方去旅行,也会影响账号的状态。

不过,一旦出了这些地区,访问权限还会恢复的。

所以如果不是去旅行,长期在那里生活的人类,该怎么解决呢?

坊间建议

关于私有项目被禁用了,有网友@Mstrodl说:

有没有试过导出数据啊?这个应该包括私有项目。

与克里米亚少年处境相近的伊朗程序员@24js说:

只要试着导出,就又会收到“由于美国法规……”这样的提示。

以前的私有项目打不开,只是一方面。

不能创建新的私有项目了,有人 (@MatheusMK3) 便建议:

去GitLab吧,那里有无限制的私有库。

但克里米亚程序员说:

GitLab前阵子刚搬到谷歌云上去了,克里米亚并不能正常访问。

就算可以访问,以后还是可能面临和GitHub差不多的情况,要遵守美国法律。

GNOME倒是可以访问,但不知道,非GNOME相关的项目能不能托管呢。

不过,他也暂且把GitLab列进入候选了。

除此之外,也有小伙伴推荐了服务器不在美国的git托管平台,其中提名次数最多的就是Gitea

不过目前看来,克里米亚少年还是对“搬出去”这件事,表现出了相当程度的犹豫。

毕竟,GitHub还是更主流的平台,有更多的人能关注到他。

但并非没有好消息。

在一位GitHub员工的提醒之下,克里米亚程序员给自己的网站做了一下Rebuild,现在又能看到了。

只是,这位GitHub员工并没有回答伊朗少年关于私有库的提问。

最后,Last but not least:

放弃幻想,有备份总是好的。

GitHub声援项目:

https://github.com/1995parham/github-do-not-ban-us

哈梅德博客:

https://medium.com/@hamed/github-blocked-my-account-and-they-think-im-developing-nuclear-weapons-e7e1fe62cb74

克里米亚的Issue:

https://github.com/tkashkin/GameHub/issues/289

Hacker News讨论版:

https://news.ycombinator.com/item?id=20531039

作者系网易新闻·网易号“各有态度”签约作者

欢迎关注磐创博客资源汇总站:

http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:

http://pytorch.panchuang.net/

GitHub也会断供:美国制裁地区帐号都受限,毫无预警,个人页面直接404的更多相关文章

  1. GitHub学习心得之 安装配置与多帐号管理

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 GitHub学习心得之 安装配置与多帐号管理 1.前言2.GitHub Linux安装(ub ...

  2. 坏账,断供,四大国有资产管理公司(AMC):东方、长城、信达和华融

    在高房价大幅度下降以后,银行会认为你在贷款的时候的抵押物,已经不值钱了,比如已经下跌百分之五十了,那么,银行就会给贷款者一个通知——你的抵押物--房子,已经不值钱了,所以说,你必须立刻缴纳这一部分贬值 ...

  3. 石锤了!google彻底断供华为,只能加速鸿蒙生态的形成

    前言 操作系统是当今科技行业的灵魂,而即将推出这款操作系统是一个集电脑.手机.汽车等设备于一体的系统.如今手机行业里已经是一片红海了,竞争相当激烈,但是竞争归竞争,但是一旦扯上别的事就更麻烦了,像华为 ...

  4. 多个github帐号的SSH key切换

    写在前面的话 github账号,工作有一个,自己有一个.但是默认下使用ssh key在git push时只有默认账号能免输入账号和密码. 如果想让另一个账号在代码push时免账号和密码,请看这篇文章h ...

  5. 为github帐号添加SSH keys

    为github帐号添加SSH keys 2012-05-26 00:05 34279人阅读 评论(6) 收藏 举报 ssh文本编辑gitvim工具up 使用git clone命令从github上同步g ...

  6. itunes connect 沙盒帐号地区的问题导致无法进行充值

    项目代理给台湾发行,版本由项目提交appstore,台湾合作伙伴会进行测试.这里遇到一个问题,就是沙盒帐号测试的时候死活提示充值失败,不走正常的充值流程. 后来我分析了原因,主要是由于帐号的App S ...

  7. 为github帐号添加SSH keys(Linux和Windows)

    文章转自:https://blog.cofface.com/archives/406.html/2 一.Linux增加ssh keys方法: 使用git clone命令从github上同步github ...

  8. (转)在GitHub多个帐号上添加SSH公钥

    GitHub后台可以添加多个SSH Keys,但是同一个SSH Keys只能在添加在一个帐号上(添加时提示“Key is already in use”).理由很容易想到,SSH公钥使用时相当于用户名 ...

  9. 多github帐号的SSH key切换

    我有两个github帐号,一个是个人所用,一个是为公司项目所用.如果是单用户(single-user),很方便,默认拿id_rsa与你的github服务器的公钥对比:如果是多用户(multi-user ...

随机推荐

  1. Animate.css动画库,简单的使用,以及源码剖析

    animate.css是什么?能做些什么? animate.css是一个css动画库,使用它可以很方便的快捷的实现,我们想要的动画效果,而省去了操作js的麻烦.同时呢,它也是一个开源的库,在GitHu ...

  2. 深入理解JavaScript的函数作用域

    什么是作用域 ? 作用域:一个变量可以生效的范围. 变量不是在所有地方都可以使用的,而这个变量的使用范围就是我们要说的作用域. 注意:在JavaScript中,划分作用域也是用大括号划分的, 但是在 ...

  3. Java入门教程八(面向对象)

    对象概念 一切皆是对象.把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作.一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的.对象之间通过 ...

  4. 7-5 jmu-python-分段函数1 (10 分)

    本题目要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数): 输入格式: 直接输入一个实数给 x,没有其他任何附加字符. 输出格式: 在一行中按“f(x)=result”的格式输出,其中x ...

  5. 有史以来最全的CMD命令

    说在前面的话: 本篇是博主通过网上查找整理而成的,且都是亲测可以的一些cmd命令,可以说是很齐全了,当然,如果有不可以运行的代码,欢迎大家留言指出,我会不断完善的,谢谢. CMD作用: 掌握一些基本的 ...

  6. 2020最新ArchLinux安装(KDE桌面)

    许多网友反映之前的教程安装好后连不上互联网,最近我刚好又安装了一遍,总结出以下没毛病的过程 按照此教程需要你会基本的vim操作(或其他文本编辑工具比如nano),基本的fdisk分盘操作(或其他分盘工 ...

  7. go package 学习笔记 —— strconv(string与其他基本数据类型(int, float, bool)的转换)

    strconv实现了go中基本数据类型与string之间的转换. How to use in go go doc:https://godoc.org/strconv import "strc ...

  8. python sqlite3操作类扩展,包含数据库分页

     一.原因 最近在使用python3和sqlite3编辑一些小程序,由于要使用数据库,就离不开增.删.改.查,sqlite3的操作同java里的jdbc很像,于是就想找现成的操作类,找来找去,发现一个 ...

  9. MDI设置父子窗体

    1.新建父窗体,设置窗体属性:IsMdicontainer设置成true; 2.拖入button控件,修改button中的text. 3.点击button控件设置代码: //1.窗体实例化 Form ...

  10. Python只有文件不存在才能写文件

    当我们在Python里面写文件时,我们常用的模式为 w模式,这种模式下,如果文件不存在,就会生成文件:如果文件已经存在,就会直接覆盖. 有时候,如果文件已经存在,直接覆盖文件可能会导致重要数据丢失.你 ...