了解和使用ssh安全鑰匙

怎么登陆虚拟主机-使用SSH

我计划使用谷歌云搭建了自己的VPN(服务器),因为要在虚拟主机上安装操作系统,以及VPN的应用程序和服务(如Wireguard),我需要连接到虚拟主机上去做软件安装和配置的操作。我想知道怎样才能做到,下面就是我研究和学习如何达到这个目的时收集和学到的知识。

连接到私有云上的虚拟主机或空间,有两种常用的方式,一种是使用SSH方式连接到虚拟主机,这是一种更加安全的方式;另一种是使用私有云服务提供的浏览器管理界面。这两种方式,都能让你在虚拟主机上操作,进行安装软件和配置的工作。

虽然私有云服务上提供的浏览器管理界面要直观一些,但在你注册、购买、创建了自己的虚拟主机之后,使用SSH的方式会更加安全,性能也比使用浏览器要高。如果你想了解如何使用SSH登陆你的虚拟主机,以及为什么要使用SSH,我在下面为你描述详情。

什么是SSH,我为什么需要使用它?

SSH是一种密码钥匙,你要使用它来为你的远程通讯提供一种安全的方式。为什么要创建SSH密码钥匙?因为它比使用密码更安全!你要远程在海外私有云处创建你的虚拟主机(虚拟空间),你需要通过互联网远程登录到你的虚拟主机。而这时,最安全的方法是使用公用钥匙认证方法,而不是使用密码。SSH钥匙提供一种更为安全的方式登录到你的远程虚拟主机(或虚拟空间)。

在使用SSH钥匙的公用钥匙认证系统中,每一台计算器都拥有一个公用和一个私有钥匙(这两种钥匙其实一种基于数学的算法,是无法被破解的)。目前,这种钥匙要么使用RSA(Rivest-Shamir-Adleman),要么使用DSA(Digital Signature Algorithm),这两种钥匙都被认为是目前最先进的算法。但是,最近几年里,DSA逐渐被认为不是很安全,所以RSA成为唯一推荐的选择。在本文中,我们使用的钥匙也是RSA。

当你远程登录到你的虚拟主机(虚拟空间)时,你的私有云服务供货商会使用SSH钥匙认证系统中的公用钥匙,来加密与你之间进行的所有通讯,而你使用自己的私有钥匙来解密这些信息。

这就意味着即使在通讯的过程中有人在监听,他们也无法得知通讯的内容是什么!也无法进行干扰!为了使安全性更强,在私有钥匙部分你可以加入口令,这样即使你的私有钥匙因为计算机被其他人控制而落于他人之手,因为你设置了口令,这些人也无法使用得到的私有钥匙解开加密的信息。

在有些情况下,你可能会选择不在私有钥匙中加入口令的方式。例如,你需要一些自动化的工作,像自动登录到虚拟主机,进行增量备份;或使用API去管理你的虚拟主机。

在使用SSH钥匙进行登录的系统中,你可以把公用钥匙存放在任何私有云的虚拟主机(虚拟空间)中,而将私有钥匙存放在访问虚拟主机(虚拟空间)的客户端,比如你自己的Windows计算机。而不要不使用基于普通的密码验证登录的方式。

这样,只有拥有匹配的钥匙对的人才能登录到你的虚拟主机,从而为你的虚拟主机(虚拟空间)提供更加安全的保护,因为其他人很难使用brute-force attack(使用软件来一个个的试不同的密码以登录你的计算器系统)的方式来破解你的密码然后进入你的虚拟主机系统。

使用SSH登陆到你的虚拟主机(虚拟空间)

在实际应用时,我们会使用一个叫着PuTTY的应用程序来部署和应用SSH加密认证系统。PuTTY是一个开源的软件,是Windows系统用户和Mac系统用户使用的SSH和Telnet客户端软件。使用PuTTY,你可以从你的Windows或Mac计算机安全地连接到远程的虚拟主机。Windows用户点击这里去官网下载;Mac的用户点击这里。

虽然PuTTY是SSH的Windows和Mac客户端软件,但它并不是基于OpenSSH开发的,或是从OpenSSH的客户端移植到Windows和Mac的,所以它不能读取OpenSSH的SSH-2私有钥匙文件。

但是,PuTTY有一个叫着PuTTYgen的部件(一个RSA和DSA的钥匙生成器),它能将OpenSSH的私有钥匙文件转化成PuTTY可以阅读的格式。因此,你就可以从你的Windows和Mac计算机,通过SSH钥匙提供的高度安全性,连接到远程的虚拟服务器。

这里下载PuTTYgen(给中国大陆用户的提醒,不要使用任何其它的来源):你要使用PuTTYgen在PuTTY中生成你的SSH钥匙。在你下载了PuTTY运行文件之后(其后缀是.exe),直接在你要连接到远程虚拟主机的计算机上运行它就好,比如Windows。

现在,我们先使用PuTTYgen来生成SSH钥匙对:

  • 运行PuTTYgen,用你的鼠标双击它就好;
  • 在“Type of Key to generate:”的部分,选择RSA;
  • 在“Number of bits in a generated key:”部分填写2048或4096(越大的数字表示越难以被破解);
  • 点击Generate按钮;
  • 这时,使用你的鼠标在进度条的下方随意地滑动,直到钥匙生成的过程完成;
  • 你的钥匙对现在已经生成了;
  • 在Key comment部分,你可以写入任何你喜欢写入的信息,其中的一个主要目的就是通过此key comment来帮助你辨认你的钥匙对,例如你可以输入你的电子邮件地址,或办公室、家里的住址等等。如果你有很多对钥匙,你就会发现它对于你分辨它们是多么的有用;
  • 这里有一个选项:Key passphrase(口令),你可以添加口令来增强安全性。但是,如果你打算在一个自动化的工作过程中使用此钥匙对的话,就不要设置口令;
  • 点击Save public key按钮来保存你的公用钥匙,然后使用任何你喜欢的名字来命名它(有的用户喜欢创建一个叫着my-keys的活页夹来保存公用钥匙;
  • 点击Save private key按钮来保存你的私有钥匙,使用任何你喜欢的名字来命名它(你可以把它和你的公用钥匙存放在一起,但是你应该注意的是确保只有你能够接触到它,而你不会丢失它!如果你丢失了你的私有钥匙,同时又将密码登录系统关闭了,那么你就永远无法登录你远程的虚拟主机了);
  • 用鼠标右键在Public key for pasting into OpenSSH authorized_keys file文本框中点击一下,然后选择“select all—全部选中”,然后再点击一下鼠标右键选择copy—拷贝;

注意:PuTTY和OpenSSH在公用SSH钥匙中使用不同格式,如果你看到你拷贝的SSH钥匙以BEGAIN SSH2 PUBLIC KEY…开头,那么这个格式是不对的,你的格式应该是以ssh-rsa AAAA…开头。

接下来,你需要将你的公用钥匙拷贝到你的虚拟主机(虚拟空间)去。这里,我们假设你已经在私有云服务商处创建了你的虚拟主机,并在创建虚拟主机的时候选择安装了一种Linux操作系统,比如:Ubuntu或CentOS,等等。如下图:

你需要将上一步拷贝的公用钥匙粘贴到虚拟主机(虚拟空间)上的~/.ssh/authorized_keys文件中。下面是详细的步骤:

  • 登录到你的虚拟主机;
  • 如果在虚拟主机上没有上面提到的文件夹和文件,使用下面的命令创建它们;
Mkdir ~/.sshChmod 0700 ~/.sshTouch ~/.ssh/authorized_keysChmod 0644 ~/.ssh/authorized_keys
  • 将你拷贝的公用钥匙粘贴到~/.ssh/authorized_keys文件中去,使用如下命令:
Sudo vim ~/.ssh/authorized_keys
  • 敲击键盘上的i键,以及你的鼠标右键来粘贴;
  • 粘贴后,你使用下面的敲击键盘的顺序来进行保存:Esc, :, w, q, Enter(注意:这里的逗号是用于分隔作用,不是你需要在键盘上敲击的)

现在,你的公用钥匙已经部署到了虚拟主机。接下来,我们使用PuTTY客户端登陆到你的虚拟主机。

  • 启动PuTTY,在左边的导航窗口,找到SSH,再点击其左边的+符号,展开。如图:
  • 找到下面的Auth,点击它。然后在右边的窗口,点击Browse…
  • 然后在弹出窗口中,去找到你前面保存私有钥匙文件的地方。选择保存的私有钥匙文件,然后点击Open按钮;
  • 再在左边的导航窗口中,找到最上面的Session,点击它;
  • 在右边的窗口中,在Host Name(or IP address)下面的对话框中,输入你虚拟主机的IP地址,右边的端口保持默认的22;
  • 确保下面的connection type为SSH;
  • 在Save Sessions下面的文本框中,输入你想为这个到虚拟主机的连接取的名字,然后点击右边的保存按钮(Save);

现在,我们已经上面的步骤,为到你虚拟主机的登录连接创建一个档案,这样,在下次登录的时候你就不必再次输入以前输入过的信息。

你只要点击下方的Open,你就使用SSH连接到你在私有云上的虚拟主机了。如下图:

登陆到你的虚拟主机之后,你会看到Linux的命令窗口。

接下来,你就可以使用相关的命令去安装和配置你需要的应用程序了,如安装和配置Wireguard,为自己建置一个VPN服务器。如果你还对如何安装和配置Wireguard来建置自己的VPN服务器,请去阅读本站的《私有云如何搭建-在私有云主机上安装Wireguard的详细指南》

(已閱讀 842 次, 今天的閱讀次數為1 次)

你還可能對這些文章感興趣

發佈留言