Vultr VPS怎样设置SSH KEYS并用之无密码SSH登录

VPS登录通常有两种方式,一种是传统的用户名+密码的方式登录,一种是利用SSH密钥的方式登录。用户名+密码登录方式安全性不如利用密钥登录,因为用户加密码方式登录可能遭到黑客的不断尝试,在用户密码强度不高的情况下很可能被黑客通过工具破解,因而存在较大安全隐患。

通过SSH安全密钥方式登录可以避免被不断尝试,其基本原理和认证过程是:首先用工具生成一对公钥和私钥(存放到本地的某个文件中),然后把公钥放到服务器的/root/.ssh/authorized_keys文件中。使用SSH客户端(比如putty)发送登录请求道服务器,服务器会向用户发送一段随机字符串,SSH客户端用自己的私钥(登录前先指定私钥文件的位置)加密后,再发回给服务器,服务器用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求输入密码。

VULTR后台提供了设置SSH公钥的功能,使得用户不必手动上传公钥,并且每次新创建一个VPS时都可以重用这个公钥。本文为您分享基本完整的VULTR VPS设置SSH密钥进行无密码登录的过程。

1、首先要生成一对自己的公钥和私钥。这个是通用的,和哪家的VPS没有任何关系。通常在windows下可以使用puttygen来生成(在打开的页面中找到puttygen下载运行)。
运行puttygen后界面如下:

点击Generate按钮开始生成公钥/私钥对(在生成的时候需要用鼠标在进度条上来回晃动,直到进度条走完)。

puttygen

SSH key对生成完成的界面:

puttygen2

如果不想密钥被别人使用,可以加上密码(在key passphrase和confirm passphrase的输入框中输入密码),这样在使用SSH KEY登录时会提示输入密钥的密码。

点击Save private key保存私钥到本地文件,点击Save public key保存公钥到本地文件。

以上公钥和私钥可以直接拿来在任何linux或freeBSD服务器上使用。

2、下面说说在vultr上设置SSH KEY的步骤。

登录到vultr后台,进入https://my.vultr.com/sshkeys页面,点击Add SSH Key按钮,粘贴从puttygen生成的公钥(上图中以ssh-rsa开头的字符串。ssh-rsa这几个字母不是公钥的一部分,但这里必须一同拷贝。并且不要拷贝最后结尾的key comment),然后保存。

然后新建VPS时,在SSH KEY的地方选择该KEY的名称即可在创建时将公钥放置到服务器的指定文件中(/root/.ssh/authorized_keys),不需要手工去放置。如果在新建vps时没有选择公钥文件,也可手动放置,目录结构和上面自动放置一致即可。

做完上述设置后,vultr vps默认的可以用用户密码登录也可以使用ssh key登录。使用SSH KEY登录时除了要设置hostname和端口(默认22)外,还要设置SSH的auth项,如下图:

puttyssh

在private key file for authentication这里选择puttygen生成并保存的私钥文件,然后点击open开始SSH登录,如果hostname处没有指明登录用户(形如root@1.1.1.1),这里先要输入root用户名,然后系统就会自动进行SSH KEY的验证(如果在生成密钥时设置了key passphrase,这里要输入密钥的密码),验证成功后就直接登录了,无需输入root账号密码。

如果要禁止使用用户名加密码方式登录,可以登录VPS后修改/etc/ssh/sshd_config文件,设置PasswordAuthentication yes为PasswordAuthentication no即可。

Vultr VPS怎样设置SSH KEYS并用之无密码SSH登录分享完毕。购买vultr请使用vultr优惠码
本文地址:/vultr-vps怎样设置s…eys并用之无密码ssh登录.html

4 replies on “Vultr VPS怎样设置SSH KEYS并用之无密码SSH登录”

  1. 2017说道:

    你好,我把puttygen生成的公钥文件放入 .ssh文件夹后,直接使用私钥登陆,xhell上显示所选的用户私钥未在远程主机上注册,请问这是怎么回事?

  2. 好难见到网推说道:

    这个VULTR VPS 不能改变默认22端口号,要不然用xshell登录不成功,网上搜了一大堆教程都以失败告终?

    • admin说道:

      ssh默认端口号22,是可以改成其它端口号的。xshell没用过,Putty下可以用其他端口号登陆。

Comments are closed.