Skip to content

Latest commit

 

History

History
104 lines (62 loc) · 3.88 KB

ssh链接服务器.md

File metadata and controls

104 lines (62 loc) · 3.88 KB

用ssh密钥文件登陆服务器

用腾讯云自己生成的密钥文件

如果你购买了一个服务器,那么你肯定是需要远程登陆它的。

ssh密钥登陆就是受推崇的一种方式。它在安全性和便捷性间作出了非常好的折中。

以腾讯云为例。你在购买腾讯云的服务器后,如果你想登陆服务器,那么就需要开放ssh端口。

你可以通过它自带的方式生成一个密钥文件。腾讯云会为你保存名称和公钥,私钥文件需要自己下载保存。

你下载下来的密钥文件的文件名应该是和你所起的名称是一致的。

你可以直接使用这个密钥文件。

使用之前你可能需要先更改这个文件的权限

chmod 400 <文件路径>

修改以后你就可以直接使用以下命令来登陆服务器了。

ssh -i <文件路径> <服务器用户名>@<公网ip>

注意,如果你使用以上方法,那么你的文件名不能改,改了就不行了。

更通常的做法

然而这个方式不优雅,也不是我们推崇的。

一般操作系统都会自带~/.ssh文件夹,如果没有,你可以自己创建一个。

进去后应该会有两个文件,一个是id_rsa,另外一个是id_rsa.pub

这是我们电脑默认的ssh加密文件。如果你曾经使用过git,那么不应该对他们很陌生。

这两个文件各有用处,id_rsa负责储存私钥,id_rsa.pub负责储存公钥。

如果你想使用腾讯云给你生成的密钥文件的内容。那么你可以将你之前下载的密钥文件重命名为id_rsa然后覆盖掉默认的。

然后去腾讯云将公钥复制下来,创建一个id_rsa.pub的文件,将公钥内容复制进去。然后用你创建的id_rsa.pub文件覆盖掉默认的。

然后你可能需要更改文件权限

chmod 400 ~/.ssh/id_rsa

这样你就可以使用以下命令登陆服务器了

ssh <服务器用户名>@<公网ip>

如果你不想用腾讯云给你的密钥文件内容。我假设你之前没有密钥文件(因为有密钥文件的操作是包含在没有密钥文件的操作之中的)。

在shell中输入以下命令

# 这是在生成密钥对
ssh-keygen

然后会出现以下提示

Generating public/private rsa key pair.
Enter file in which to save the key ~/.ssh/id_rsa):

这是让你在选择ssh密钥内容的保存位置。而这个文件位置一般就是~/.ssh/id_rsa,也就是我们期望的默认位置。直接回车。

然后会出现以下提示

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

然后会让你输入两次一个叫做passphrase的东西,你可以理解是对密钥文件的加密,也就是密钥文件的密码。一般来说直接回车两次就行了,这代表不设置passphrase

然后登陆服务器。进入服务器的~/.ssh目录,使用ls命令查看其中的文件。里面应该有一个叫做authorized_keys的文件。这个文件里面存有所有得到登陆授权的公钥。储存格式是每行一个公钥。

我们可以编辑authorized_keys,然后将自己生成的公钥内容复制进去(记得保存)。

然后我们就可以通过本地的ssh密钥对登陆了。

从这里我们可以看出ssh密钥对的优势和好处。我们可以在服务器的authorized_keys储存多台电脑的ssh文件的公钥,就可以实现服务器的安全共享。

ssh文件的使用

为了方便,我们每个计算机都只保存一个ssh文件密钥对,也就是id_rsaid_rsa.pub。然后任何需要使用ssh文件的地方都用这个密钥对。这样我们就免去了命令上的麻烦。

ssh命令中的-i实际上就是使用密钥文件的意思。以后我们登陆任何需要ssh文件的服务器,都直接使用

ssh <服务器用户名>@<公网ip>

就可以了。非常方便。