标签 下载 下的文章

当你从网上下载一个文件后(比如:安装程序、ISO镜像或者一个压缩包),文件可能在不同的情况下发生了损坏,比如:由于线路传输错误、中断的下载、存储硬件错误、文件系统错误等等。除了这些错误,文件还可能在下载前或者下载中的攻击而被有意地篡改了。比如,一个攻破证书颁发机构的攻击者可以实施一个MITM攻击(中间人攻击),欺骗你从HTTPS网站上下载隐藏恶意软件的文件。

要保护你自己免受这些问题的困扰,建议你去验证从网上下载的文件的可靠性和完整性。特别是你下载了一个非常敏感的文件的时候)(比如:操作系统镜像、二进制应用程序、可执行安装包等等),盲目地相信下载的文件不是一个好习惯。

一个快速和简单地验证下载文件的完整性的方法是使用不同的校验工具(比如:md5sum、sha356sum、cksum)来计算和比较校验码(比如:MD5、SHA、CRC)。然而,然而校验容易受到碰撞攻击,而且同样不能用于验证文件的可靠性(比如:拥有者)。

如果你想要同时验证下载文件的可靠性(拥有者)和完整性(内容),你需要依赖于加密签名。本教程中,我会描述如何使用GnuPG(GNU Privacy Guard)来检查文件的可靠性和完整性。

本例中我会验证一个从 https://onionshare.org 上下载的磁盘镜像。这个网站中,发行商会提供他们的公钥,还有它用于密钥验证的指纹。

至于下载的文件,发行商也会提供它相关的PGP签名。

安装 GnuPG 并且生成一个键对

让我们首先在你的Linux系统上安装GnuPG。

在Debian、Ubuntu和其他Debian衍生版上:

$ sudo apt-get install gnupg 

在Fedora、CentOS或者RHEL上:

$ sudo yum install gnupg

完成安装后,生成一个本篇中会使用到的键对。

$ gpg --gen-key 

在生成键对期间,你会被要求提供你的姓名和email,还有保护你私钥的密码。你同样也可以选择键对何时过期(默认不会过期)。依赖于你选择的key的大小(在1024和4096位之间),key生成会花上几分钟或者更多,同时它要求收集来自你桌面活动的大量的随机数据。(比如键盘输入、鼠标移动、磁盘访问等等,所以这个时候随便动动鼠标键盘什么的)。

一旦key生成完毕后,公钥和私钥会存储在~/.gnupg目录。

与某个文件和拥有者建立信任

验证下载文件的第一步是与任何提供文件下载的人建立信任。出于此,我们下载了这个文件的公钥,并且验证公钥的拥有者是否是他或者她自称的。

在下载完文件拥有者的公钥后:

$ wget https://onionshare.org/signing-key.asc 

使用gpg命令导入公钥到你的keyring中

$ gpg --import signing-key.asc 

一旦拥有者的公钥导入后,他会像下面那样打印出一个key ID(比如:"EBA34B1C")。记住这个key ID。

现在,运行下面的命令检查导入的公钥的指纹:

$ gpg --fingerprint EBA34B1C 

你会看到key的指纹字符串。把这个和网站上显示的指纹做对比。如果匹配,你可以选择信任这个文件拥有者的公钥。

一旦你决定相信这个公钥,你可以通过编辑key来设置信任级别:

$ gpg --edit-key EBA34B1C

这个命令会显示GPG提示符:

在GPG提示符中输入“trust”,它会让你从1-5之间选择这个key的信任等级。

本例中,我决定分配给它“4”,在这之后,输入“sign”用你自己的私钥签名,接着输入在GPG提示符中输入“save”来完成操作。

要注意的是不需要这样明确地给一个公钥指派信任,通过key的导入隐式地信任往往就够了。

给一个key隐式地分配给“完全”的信任就是任何其他由这个完全信任签名的key X都会被认为是对你有效的。通常上,key验证依赖于一个称之为“信任网”的复杂机制。

回到教程,现在让我们检查导入的key列表。

 $ gpg --list-keys 

你至少会看到两个key:一个带 depth 0和终极信任("1u"),这就是你自己的key,另外一个带depth 1和完全信任("1f"),这是你之前签名的key。

验证文件的可靠性/完整性

一旦你建立了与文件拥有者和他的/她的公钥之间的信任关系,我们需要验证你从拥有者那边下载的文件的可靠性和完整性了。

本例中,文件拥有者分别公布了一个文件和它相关的PGP签名(.asc)。签名所起的作用就是认证(文件)并且在其中加入一个时间戳。

一个典型的签名(*.asc)看上去像这样。

-----BEGIN PGP SIGNATURE-----

iQIcBAABCgAGBQJUJGhsAAoJEP1yCtnro0sc1jUP/ixNY/lKdrcMIAUoqlWKNE8f
sj4SFiwREMew76w66GASDF03fa5zPX6EsS2kucgx8ZsfEiSmN5T0y2P/aSaXwZqF
kywZVEzirKtca5AJ4DBzu6qrt9GgSw6JBJVv1oBJCMNyO+eAj341paR3MudvnyQz
H/N5tc4Qcilzy6M184opGIzy4ipEmMXfLHsd7WJpAyn+tO/z3uhh9NkNuygZpaFr
olpSWPE8revdDJyfMfSmb3ZrFmhLn7FCEltOi+a7SluvrMclizfnbec9rgLJtjo0
CPDZY7tsWmmL0DA3VvpMVqGvkg/Dyhpn2IIDrNaLAlvGQ5aovf+4tjad5IHvyaWx
4Gds93G6Hqvv5RwGx7OR3hgt2o0Y+qFsVDxVnPxerGhXeJXHzSDwLQMpdj9IoSU
Ae/53XXnxqSN6POZcwHiHvbsv0pdlg0Ea0dDAAN0ZeINNyZf1R0tLjWkcgpvGCtv
qkJuYFF9W9cWHraPY2ov5Hs/JZzPcG0eVpnDdzfOOH1gDKADq9A5D2X5QJCulsh9
WwU3X+E43OqIsoRzBucItD9HhZbEH7t8Q0xAqnAkgU3hriZp3dN4cnMfhM6I9hli
EmpSpLKCceMexu2o9QgzGXVm+AGZJe4QkuwAhRIccp5JDMVny61UlKTasjy6co8h
5GBhhYybPEFM+G1BODMd
=c9wo
-----END PGP SIGNATURE-----

现在让我们同时下载它的文件和签名:

$ wget https://onionshare.org/files/0.6/OnionShare.dmg
$ wget https://onionshare.org/files/0.6/OnionShare.dmg.asc

现在验证下载文件的PGP签名。

$ gpg --verify OnionShare.dmg.asc OnionShare.dmg 

如果命令的输出包含了“Good signature from <文件所属者>”,那么下载的.dmg文件就被成功地认证和核实了。如果下载的文件的任何地方在签名后被篡改了,那么验证就会失败。

这时你就可以放心地信任你下载的文件了。


via: http://xmodulo.com/verify-authenticity-integrity-downloaded-file.html

作者:Dan Nanni 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

当你下载了一个 ISO 镜像,特别是从 BitTorrent 网络上很多未知的种子处下载的,通常建议要验证下载镜像的完整性。

对于 Ubuntu 发行版的情况, Canonical 提供了几个供验证使用的验校文件(如 MD5SUM, SHA1SUMS 和 SHA256SUMS)。在这个例子中我们使用 SHA256SUMS。

首先,下载下面两个文件。

$ wget http://releases.ubuntu.com/14.10/SHA256SUMS
$ wget http://releases.ubuntu.com/14.10/SHA256SUMS.gpg

第一个文件是 ISO 镜像的 SHA256 验校文件,而第二个文件(*.gpg)是验校文件的签名。第二个文件的目的是验证验校文件本身的有效性。

我们通过运行下面的命令来验证 SHA256SUMS 文件的有效性。

$ gpg --verify SHA256SUMS.gpg SHA256SUMS 

gpg: Signature made Thu 23 Oct 2014 09:36:00 AM EDT using DSA key ID FBB75451
gpg: Can't check signature: public key not found

如果你得到上面的错误信息,是因为你还没有导入生成这个签名的公共密钥。因此我们现在导入需要的公共密钥。

这样做之前,你需要知道公共密钥的 “key ID”,而这在上面的 gpg 命令的输出中有显示。在这个例子中,密钥 ID 时 “FBB75451”。运行下面的命令来从官方 Ubuntu 密钥服务器导入公共密钥。

$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys FBB75451 

既然公共密钥已经被导入,我们可以继续并重新运行之前的命令来验证签名。

gpg --verify SHA256SUMS.gpg SHA256SUMS 

这次你没有看到 “public key not found” 的错误信息。如果 SHA256SUMS 文件时有效的,你会看到 “Good signature from ” 的信息。注意到你还看到一个 “This key is not certified with a trusted signature” 的警告信息。基本上这个警告信息是告诉你对导入的公共密钥没有明确信任。要避免这个警告,你可以选择指定完全信任导入的公共密钥,但你应该只有在通过其他方式审查了这个密钥之后才这样做。否则的话,你可以暂时忽略这个警告。

在验证了 SHA256SUMS 文件的完整性后,最后一个步骤是比较已下载 ISO 文件的 SHA256 验校和和 SHA256SUMS 文件中对应的验校值。你可以使用 sha256sum 命令行工具来完成这个步骤。

为方便起见,下面一行命令比较 SHA256 验校和并报告结果。

 $ sha256sum -c <(grep ubuntu-14.10-desktop-amd64.iso SHA256SUMS) 

ubuntu-14.10-desktop-amd64.iso: OK

如果你看到了上面的输出信息,这表明两个验校值相匹配。这样已下载 ISO 镜像的完整性就被成功的验证了。


via: http://xmodulo.com/download-iso-image-bittorrent-command-line.html

作者:Dan Nanni 译者:wangjiezhe 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

方德软件中心(Foundation Software Center)于2014年11月12日正式发布!对于Linux爱好者,又多了一种新的尝试。

方德软件中心相对大部分用户来说还比较陌生,在设计上延续了Windows系统的操作习惯,希望通过无障碍的操作体验,吸引更多用户参与体验linux系统,为linux系统的普及开辟新航路。

  • 在应用的数量上,给用户提供了更多的选择,推出了定制化的截图软件、压缩软件等,并将不定期增加新的定制应用;
  • 在功能方面,除了具备一键式的安装、升级与卸载操作的通用功能外,在软件中心首页,对所有软件进行了精心分类,用户可以快速地从软件仓库中找到自己喜爱的软件;
  • 另外,考虑到Linux初级用户,还在软件中心首页加入了软件的常用搭配和装机必备等定制主题。

总体来说,方德软件中心是一款适合中国Linux用户的软件中心,更加考虑到了部分初级Linux用户使用起来上手比较难的问题,该问题也是为什么Linux普及困难的原因,不管您是新手还是老手,不妨下载试用一下这个新的软件中心,现在注册试用还有iphone6等你来拿。

下载地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter

众所周知,在系统中使用新立得包管理工具或软件中心下载和安装应用程序的时候,我们必须得有互联网连接。但,如果您刚好没有网络或者是网络速度死慢死慢的呢?在您的 Linux 桌面系统中使用软件中心包管理工具来安装软件绝对是一个头痛的问题。反而,您可以从相应的官网上手工下载应用程序包并手工安装。但是,大多数的 Linux 用户并不知道他们希望安装的应用程序所需要的依赖关系包。如果您恰巧出现这种情况,应用怎么办呢?现在一切都不用担心了。今天,我们给您介绍一款非常棒的名叫 Camicri Cube 的离线包管理工具。

您可以把此包管理工具装在任何联网的系统上,下载您所需要安装的软件列表,然后把它们安装到没联网的机器上,就可以安装了。听起来很不错吧?是的,它就是这样操作的。Cube 是一款像新立得和 Ubuntu 软件中心这样的包管理工具,但是一款便携式的。它在任何平台(Windows 系统、基于 Apt 的 Linux 发布系统)、在线状态、离线状态、在闪存或任何可移动设备上都是可以使用和运行的。我们这个实验项目的主要目的是使处在离线状态的 Linux 用户能很容易的下载和安装 Linux 应用程序。

Cube 会收集您的离线电脑的详细信息,如操作系统的详细信息、安装的应用程序等等。然后使用 USB 迷你盘对 cube 应用程序进行拷贝,得到一副本,把其放在其它有网络连接的系统上使用,接着就可以下载您需要的应用程序列表。下载完所有需要的软件包之后,回到您原来的计算机,并开始安装。Cube 是由 Jake Capangpangan 开发和维护的,是用 C++ 语言编写,而且已经集成了所有必须的包。因此,使用它并不需要再安装任何额外的软件。

安装

现在,让我们下载 Cube 程序包,然后在没有网络连接的离线系统上进行安装。既可以从官网主站页面下载,也可以从Sourceforge 网站下载。要确保下载的版本跟您的离线计算机架构对应的系统相匹配。比如我使用的是64位的系统,就要下载64位版本的安装包。

wget http://sourceforge.net/projects/camicricube/files/Camicri%20Cube%201.0.9/cube-1.0.9.2_64bit.zip/

对此 zip 文件解压,解压到 home 目录或者着是您想放的任何地方:

unzip cube-1.0.9.2_64bit.zip

这就好了。接着,该是知道怎么使用的时候了。

使用

这儿,我使用的是两台装有 Ubuntu 系统的机器。原机器(离线-没有网络连接)上面跑着的是 Ubuntu 14.04 系统,有网络连接的机器跑着的是 Lubuntu 14.04 桌面系统。

离线系统上的操作步骤:

在离线系统上,进入已经解压的 Cube 文件目录,您会发现一个名叫 “cube-linux” 的可执行文件,双击它,并点击执行。如果它是不可执行的,用如下命令设置其可执行权限。

sudo chmod -R +x cube/

然后,进入 cube 目录,

cd cube/

接着执行如下命令来运行:

./cube-linux

输入项目的名称(比如sk)然后点击创建按纽。正如我上面提到的,这将会创建一个与您的系统相关的完整详细信息的新项目,如操作系统的详细信息、安装的应用程序列表、库等等。

如您所知,我们的系统是离线的,意思是没有网络连接。所以我点击取消按纽来跳过资源库的更新过程。随后我们会在一台有网络连接的系统上更新此资源库。

再一次,在这台离线机器上我们点击 No 来跳过更新,因为我们没有网络连接。

就是这样。现在新的项目已经创建好了,它会保存在我们的主 cube 目录里面。进入 Cube 目录,您就会发现一个名叫 Projects 的目录。这个目录会保存有您的离线系统的必要完整详细信息。

现在,关闭 cube 应用程序,然后拷贝整个主 cube 文件夹到任何的闪存盘里,接入有网络连接的系统。

在线系统上操作步骤:

往下的操作步骤需要在有网络连接的系统上进行。在我们的例子中,用的是 Lubuntu 14.04 系统的机器。

跟在源机器上的操作一样设置使 cube 目录具有可执行权限。

sudo chmod -R +x cube/

现在,双击 cube-linux 文件运行应用程序或者也可以在终端上加载运行,如下所示:

cd cube/
./cube-linux

在窗口的 “Open Existing Projects” 部分会看到您的项目列表,选择您需要的项目。

随后,cube 会询问这是否是您的项目所在的源机器。它并不是我的源(离线)机器,所以我点击 No

接着会询问是否想要更新您的资源库。点击 OK 来更新资料库。

下一步,我们得更新所有过期的包/应用程序。点击 Cube 工具栏上的 “Mark All updates” 按纽。然后点击 “Download all marked” 按纽来更新所有过期的包/应用程序。如下截图所示,在我的例子当中,有302个包需要更新。这时,点击 OK 来继续下载所标记的安装包。

现在,Cube 会开始下载所有已标记的包。

我们已经完成了对资料库和安装包的更新。此时,如果您在离线系统上还需要其它的安装包,您也可以下载这些新的安装包。

下载新的应用程序

例如,现在我想下载 apache2 包。在搜索框里输入包的名字,点击搜索按纽。Cube 程序会获取您想查找的应用程序的详细信息。点击 “Download this package now”按纽,接着点击 OK 就开始下载了。

Cube 将会下载 apache2 的安装包及所有的依赖包。

如果您想查找和下载更多安装包的话,只要简单的点击 “Mark this package” 按纽就可以搜索到需要的包了。只要您想在源机器上安装的包都可以标记上。一旦标记完所有的包,就可以点击位于顶部工具栏的 “Download all marked” 按纽来下载它们。

在完成资源库、过期软件包的更新和下载好新的应用程序后,就可以关闭 Cube 应用程序。然后,拷贝整个 Cube 文件夹到任何的闪盘或者外接硬盘。回到您的离线系统中来。

离线机器上的操作步骤:

把 Cube 文件夹拷回您的离线系统的任意位置。进入 cube 目录,并且双击 cube-linux 文件来加载启动 Cube 应用程序。

或者,您也可以从终端下启动它,如下所示:

cd cube/
./cube-linux

选择您的项目,点击打开。

然后会弹出一个对话框询问是否更新系统,尤其是已经下载好新的资源库的时候,请点击“是”。因为它会把所有的资源库传输到您的机器上。

您会看到,在没有网络连接的情况下这些资源库会更新到您的离线机器上。那是因为我们已经在有网络连接的系统上下载更新了此资源库。看起来很酷,不是吗?

更新完资源库后,让我们来安装所有的下载包。点击 “Mark all Downloaded” 按纽选中所有的下载包,然后点击 Cube 工具栏上的 “Install All Marked” 按纽来安装它们。Cube 应用程序会自动打开一个新的终端窗口来安装所有的软件包。

如果遇到依赖的问题,进入 Cube Menu -> Packages -> Install packages with complete dependencies 来安装所有的依赖包。

如果您只想安装特定的包,定位到列表包位置,点击 “Downloaded” 按纽,所有的已下载包都会被列出来。

然后双击某个特定的包,点击 “Install this”按纽来安装或者如果想过后再安装它的话可以先点击 “Mark this” 按纽。

顺便提一句,您可以在任意已经连接网络的系统上下载所需要的包,然后在没有网络连接的离线系统上安装。

结论

这是我曾经使用过的最好、最有用的软件工具之一。但我在用 Ubuntu 14.04 测试盒子测试的时候,遇到了很多依赖问题,还经常会出现闪退的情况。也仅仅是在最新 Ubuntu 14.04 离线系统上使用没有遇到任何问题。希望这些问题在老版本的 Ubuntu 上不会发生。除了这些小问题,这个小工具就如同宣传的一样,像魔法一样神奇。

欢呼吧!

原文作者:

SK(Senthilkumar,又名SK,来自于印度的泰米尔纳德邦,Linux 爱好者,FOSS 论坛支持者和 Linux 板块顾问。一个充满激情和活力的人,致力于提供高质量的 IT 专业文章,非常喜欢写作以及探索 Linux、开源、电脑和互联网等新事物。)


via: http://www.unixmen.com/camicri-cube-offline-portable-package-management-system/

译者:runningwater 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

最精简Linux Live是一系列基于linux内核BusyBox的自动生成最精简 Live Linux 系统linux shell脚本。所有所需的源码已经自动地被下载,而且所有的生成操作已经完全被封装在脚本中了。

如果你想定制属于自己的最精简Linux Live 的ISO镜像文件,以下是你需要做的:

  • 下载区域获得最新的脚本。
  • 把脚本解压到文件夹下。
  • 确保所有的脚本都可执行(可以使用命令chmod +x *.sh 添加可执行属性)
  • 在开始生成过程之前,取决于你使用什么Linux系统,可能会有一个或者多个依赖库(也可能不需要,或者更多)需要处理.如果使用Ubuntu的话,以下命令应该足以生成所有需要的依赖库:

sudo apt-get install wget
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install bc
sudo apt-get install syslinux
sudo apt-get install genisoimage
  • 执行脚本 build\_minimal\_linux\_live.sh 然后等待完成。如果你已经处理好所有的生成依赖库,那么在一台现代计算机上全部的过程耗费时间应该不超过30分钟。如果由于某些原因生成失败,最可能的应该是没有处理好生成依赖库。一些用户反应到生成所必需的包将会处理所有ubuntu上未知的生成依赖问题。如果使用Linux Mint 而且正在尝试安装 g++ 包,如果你依然遇到很多问题,那么你可以尝试安装必需包。在Fedora系统上你可能需要安装 glibc-static包。

请记得所有的生成依赖库由于你使用的Linux操作系统和已经安装的软件不同将会发生很大的变化。

如果依然有问题,请检查失败信息然后在google上搜索一下。如果你找不到解决方案,你可以询问一些更有经验的linux专家(如果你认识的话),或者另外一个选择是联系我们。请确保在发送给我们之前,你已经提前研究过这个问题。

  • 当脚本完成它们的工作,你将会在执行脚本的同目录下发现一个新创建的minimal\_linux\_live.iso 文件。你可以烧录iso镜像到CD/DVD,通过Universal USB Installer工具安装到USB闪存设备,或者直接在PC的虚拟机上运行,例如VirtualBox

生成的ISO镜像文件包括使用默认选项编译的linux内核,使用默认选项编译的BusyBox和非常轻量级的initramfs。这意味着你不需要 另辟蹊径去获得windows支持,也不需要使用任何花哨的桌面环境。你所需要的只是一个支持BusyBox applets 的shell控制台,和……好吧。这些就够了。这就是为什么称它为 "最精简"。

最好的消息是不仅操作系统很小很简单,而且生成脚本也同样的小巧玲珑。你可以很轻松地从脚本学习,并且修改他们去包含更多内容(我是很鼓励你这样做).在你学习完这些基础以后你将会拥有所有所必须的工具和技能去创造你自己功能完善的linux操作系统!完全从零开始!是不是帅呆了!?:)

这篇教程提供了更详细的脚本内部结构以及全部的生成过程,我鼓励你们如果有时间的话就去通读这个文档。

下面你会看到一些屏幕截图,它们展示了当你启动你的新一代 Minimal Linux Live 操作系统时的环境情况。


via: http://minimal.linux-bg.org/

译者:lfzark 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

功能强大下载管理器在Linux平台并不常见,不过有一些却有令人惊奇的功能,uGet就是其中之一。

当人们在Linux平台谈论下载管理器,他们通常觉得这些是在终端上。大多数情况下他们是对的。大多数下载管理器运行在终端上,而且做的很好,但是一些时候你还是想要一个友好的GUI。

uGet是非常强大的下载管理器,拥有许多功能,实际上这些功能是难以计数的。界面是由GTK+ 3构建,这意味着在多数Linux操作系统上看起来很不错。

它的下载队列管理功能可以恢复下载任务(如果服务器支持的话)、剪切板监控,支持HTTP/HTTPS/FTP/BitTorrent/Metalink账号、批量下载、FTP登陆、调度器、Aria2插件和我的个人收藏夹、断点续传(允许客户端多个时间连接同一台服务器并且在同一时间获取多个片段来增加速度)。

最妙的是,它可以轻松的集成到Firefox,Flashgot插件帮助下载,也有Chrome的专用扩展程序。

开发者为所有类型的Linux发行版提供了多个软件包,切记,它是完全免费的。

试试看吧!


via: http://news.softpedia.com/news/Meet-uGet-an-Amazing-Download-Manager-for-Linux-430085.shtml

译者:Vito 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出