增强VPS主机安全linux主机使用密匙验证关闭密码认证的方法 2012-07-12 linux 6 条评论 7669 次阅读 注意,此方法未经测试,转自李思思博客,原文链接已不存在。 平时我们登录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进行一下处理 如图显示 ![vps-security-1.jpg](https://blog.moper.net/usr/uploads/2019/10/1239939211.jpg) 导入以后 点击 Save private key 得到的就是putty能正常使用的钥匙了(如果你前面加了密码需要你输入密码) 现在呢打开putty 尝试密匙登录 ![vps-security-2.jpg](https://blog.moper.net/usr/uploads/2019/10/2452159487.jpg) 在连接那里可以输入自动登录的用户名,就可以免去输入用户名的烦恼 登录的时候会有如下提示 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” 标签: linux, vps, ssh, 安全, 密钥 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
密钥的确方便多了
但是pageant还需要输入密码咋办呢
这个是什么东西?代理?用密钥不能么?
密钥对验证,对服务器上的authorized_keys密钥对库文件权限控制的很严格的,权限应该是600
原来还要注意这个,学习了。
这个不是太方便其实
恩,我也没用呢,只是换了端口