Skip to content

[Linux] 使用SSH公钥登录Linux

Jinxin Chen edited this page Dec 11, 2019 · 1 revision

连接方式

从Windows连接Linux服务器,可以使用用户名、密码登陆,也可以使用ssh key。

如果有如下状况,可以考虑使用ssh key登陆:

  • 每次登陆不用输入用户名和密码
  • 服务器有多人登陆

使用 ssh key 登陆Linux

参考:http://blog.csdn.net/shiqidide/article/details/8110958

安装putty及相关程序

访问putty官网,找到下载页,然后下载 Windows Installer

http://www.putty.org/

注意要下载Windows Installer并安装,而不仅仅下载putty.exe。安装包额外包含:

  • PuTTYgen.exe(用于生成ssh key)
  • Pageant.exe(用于免密登陆,稍后提到)

生成 ssh key

配置Linux服务器授权key

  1. 将上一步生成的公钥,复制到服务器的 ~/.ssh/authroized_keys 文件中
  2. 修改权限,禁止其他用户和组修改该文件信息,将自己的公钥加进来登录:chmod 644 ~/.ssh/authroized_keys

配置putty登陆信息及登陆

  1. 配置密钥
  2. 配置服务器IP
  3. 配置登陆用户名
  4. 登陆

如果之前的步骤操作无误,就可以使用ssh key来登陆linux服务器了。

ssh key登陆原理

参考:http://www.cnblogs.com/hukey/p/6248468.html

这样是不是代表安全性比密码登陆低?

ssh key都是公钥和私钥成对出现,如果别人仅仅拿到公钥,是没办法登陆的。但是如果别人拿到了你的私钥,便可以无需密码就可以登陆Linux系统(私钥可以得到对应的公钥)。

但问题是,别人首先要能拿到你的私钥。你的私钥保存在自己的个人电脑里,别人首先要能够登陆到你的电脑或者其他一些途径窃取到文件,但一般情况下,是很难拿到的。

可以让安全性更高吗?

默认创建的ssh私钥是不带密码的,可以在创建私钥的同时给它加上密码,这样即使别人得到私钥,在不知道密码的情况下仍然无法使用。

但是这又带来一个新的问题:每次登陆需要输入私钥的密码。

可以又安全,又方便吗?

Pageant.exe可以用来帮忙做这件事情。它可以将带密码的密钥导入,在输入正确的密码之后,临时将其保存起来,再使用putty登陆时,就可以自动通过Pageant.exe中已经导入的密钥来登录,达到输入一次密码,多次登录的目的。

参考:

Clone this wiki locally