增强VPS主机安全linux主机使用密匙验证关闭密码认证的方法

注意,此方法未经测试,转自李思思博客,原文链接已不存在。

平时我们登录VPS都是帐号加密码的方式登录,但是这样呢很不安全,知道密码的人就能登录,不知道的还可以无限尝试,也就是被扫描,为了更加安全,所以出了这文章

好了废话少说,简单的说就三步
第一步 生成一对锁匙
密匙有公匙和私匙,形象的说就是钥匙和锁头,虽然这样说不太对,不过为了便于理解,我这里把公匙比喻为锁头,私匙比喻为钥匙
生成这一对锁匙有多种方法,先来最简单的,
我们先密码登录到我们的linux VPS上,键入如下命令
ssh-keygen -t rsa
然后会得到提示 叫你输入密码,如果你不想为这对锁头再加密码就直接输入2次回车即可,如果你为了更加安全希望这对锁匙加密的话可以输入自己的密码,也就是把你的钥匙变成高级的带密码的钥匙
提示画面应该是这样的
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
你得到了2个文件 在/root/.ssh/下面应该有 id_rsa(钥匙)和id_rsa.pub(锁头).
我们需要把锁头id_rsa.pub 改名字为 authorized_keys
(如果你需要这一对钥匙在别的VPS上也可以使用,而不是一个机子一个钥匙的话,可以把锁头和钥匙一起复制下来,在别的机子上直接把authorized_keys上传到/root/.ssh/下面即可)
好了 上面这些就是第一步 生成一对锁匙

第二步其实是因为putty.exe这个东西不能正确识别linux弄出的钥匙才需要的操作,
我们打开puttygen.exe 把我们的
钥匙id_rsa进行一下处理 如图显示

导入以后 点击 Save private key 得到的就是putty能正常使用的钥匙了(如果你前面加了密码需要你输入密码)

现在呢打开putty 尝试密匙登录

在连接那里可以输入自动登录的用户名,就可以免去输入用户名的烦恼
登录的时候会有如下提示
login as: root
Authenticating with public key “imported-openssh-key”
表示密匙登录成功
第三步就是关闭密码登录
远程Linux主机的/etc/ssh/sshd_config配置文件
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes    #======》这里把注释去掉,并改成no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes #========>把注释去掉,并改成no
修改后/etc/init.d/sshd reload #加载修改后的配置文件并生效
如果是debian的话使用 /etc/init.d/ssh reload 来重新加载配置文件
这样其他远程客户端如果没有私钥,那么这些用户连输入密码的机会都没有,就会被本主机直接断开

就这样教程完毕了

附加其他生成密匙的方法,有兴趣的继续看吧
方案一:使用puttygen.exe生成的密匙
1、用puttygen.exe生成一对密匙
1)、打开puttygen.exe,直接点击Generate,鼠标在Key区空白的位置频繁的晃动
加快随机数的产生,这样几秒钟就可以生成我们需要的密匙
2)、点击Save public key->id_rsa.pub(保存密匙)
因为puttygen.exe生成的格式和Linux系统使用的key格式不同,需要对生成的数据作些简单的修改:
比如源数据:
—- BEGIN SSH2 PUBLIC KEY —-
Comment: “rsa-key-gliethttp”
AAAAB3NzaC1yc2EAAAABJQAAAIEAg2Nx1dBZBypLXY1S78plfmPmwlQj1Ckuoz8o
4vAWjJfOy3i6t2+o7aZMbGN+yUbQY5ScyJu3bK7Wg3ZxXP6qps14J2CAXbdrT9VH
2AA3FIOgbLHii7Bwmjkr5+hVYp7Vazm7cPsGpKnmCWihqX7rkQdY7xq3mOCJI3ry
Nnfkrh0=
—- END SSH2 PUBLIC KEY —-
修改成:(我使用的Linux主机名为gliethttp)
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAg2Nx1dBZBypLXY1S78plfmPmwlQj1Ckuoz8o4vAWjJfOy3i6t2+
o7aZMbGN+yUbQY5ScyJu3bK7Wg3ZxXP6qps14J2CAXbdrT9VH2AA3FIOgbLHii7Bwmjkr5+hVYp7Vazm7cPsGpK
nmCWihqX7rkQdY7xq3mOCJI3ryNnfkrh0= root@gliethttp
(注意:修改后的数据不能有回车换行)
3)、将生成的id_rsa.pub拷贝到远程主机gliethttp的/root/.ssh上
重命名为authorized_keys
[root@gliethttp root]#cd .ssh
[root@gliethttp .sh]#mv id_rsa.pub authorized_keys
这样sshd服务程序当接收到远程客户端的连接申请时会自动匹配.ssh/authorized_keys文件中的密匙
4)、点击Save private key->id_rsa.ppk(保存私钥)
如果安全级别不是很苛刻,可以不设置Key passphrase
2、打开putty.exe
1)、Session –> Host Name (填写服务器地址或者域名)
2)、Connection –> SSH –> Auth (点Browse选择刚生成的id_rsa.ppk)
3)、open
成功打开后出现如下提示:
login as: root
Authenticating with public key “imported-openssh-key”

7 Comments
  1. tui56论坛-王宝臣来看看。呵呵。博客大全已经收录贵站博客……欢迎加入bbs.tui56.com SEO论坛!tui56论坛不求盈利……只求帮助更多朋友了解学习seo……希望通过这个圈子认识更多的朋友!已做好10年发展准备。www.tui56.com 续费到2022年!欢迎你的到来!

    1. 恩,我也没用呢,只是换了端口

  2. 密钥对验证,对服务器上的authorized_keys密钥对库文件权限控制的很严格的,权限应该是600

    1. 原来还要注意这个,学习了。

  3. 密钥的确方便多了
    但是pageant还需要输入密码咋办呢

    1. 这个是什么东西?代理?用密钥不能么?

Leave a Reply

Time limit is exhausted. Please reload the CAPTCHA.