CentOS开启密钥登录的相关设置

2016-10-16

前言

使用SSH key 来登录服务器是比较安全的选择之一,本次我想分享给大家一个较为简单的方式来实现Linux服务器的SSH key登录。并且实现禁止密码认证的功能。这样一来,只要保护好私钥,我们的服务器就会相对安全的多。

环境:CentOS 6.6/6.7/7 ;工具:因为我使用的是putty,为了方便,我使用puttygen.exe 作为生成密钥的工具,大家可以从它的官方站点下载。下面教程开始:

首先打开puttygen.exe,在最下面一行有一行字:the number of bits of generated key, 默认值为2048, 我们将其更改为4096,然后点击“Generate”;此时我们需要在界面中随意滑动鼠标来生成密钥,生成完成后我们会在上方的对话框中看到一个以 ssh-rsa开头的一大串字符,那个就是我们所要放进服务器里的公钥,为了进一步保证安全,我们可以设置Key passphrase 我们可以把它设成一个稍微简单的密码。这个密码很重要,如果你设置了就要记住它,这相当于你用SSH KEY 登录后的一个另一层的认证密码。丢了很麻烦,当然如果你不设置它,在用SSH key认证的情况下就可以直接登录而不再需要密码。各有利弊,建议还是要设置passphrase。设置完成之后,我们点击"Save pricate key"来保存自己的私钥,注意一定要保管好咯~

利用putty或者其他你熟悉的工具登录进你的服务器之中。按照以下命令执行(在此处我以CentOS为例,逐条执行,切勿全部复制粘贴):

第一步

使用vi编辑器在/root/.ssh目录下创造一个authorized_keys文件,注:如果事先没有新建/.ssh目录那么直接执行指令会保存不了,此时你应该退出vi编辑器,键入 mkdir /root/.ssh 来新建一个目录,然后再执行下列指令

mkdir -p ~/.ssh
vi ~/.ssh/authorized_keys

如果你使用的不是root用户,那么以上命令需要做微调,假如你目前使用的用户名是“test”,那么以上命令应该是

mkdir -p /home/test/.ssh
vi /home/test/.ssh/authorized_keys

相应地,后续步骤中的命令也应该做调整。

第二步

然后再复制刚才在puttygen中生成的公钥,把那一大串字符(以ssh-rsa开头的)全部复制到autorized_key,注意复制的时候在vi编辑器中先按下i 编程输入模式,否则直接粘贴进去会窜行。之后再逐条执行以下指令:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown $USER:$USER ~/.ssh -R

第三步

以上指令执行完毕之后,我们已经可以使用密钥登录了,我拿putty作为例子:首先打开putty,先选中你要登录的服务器:然后别着急登录,再左侧一次点开Connection-SSH-Auth,然后再右方有一个“browse”按钮,点击它,然后选中你之前保存的私钥。再返回登录你的服务器,不出问题的话 应该会认证密钥,密钥认证成功后会询问你的passphrase,填入之前生成密钥时设置的passphrase,就可以顺利登陆了。为了安全起见,我们可以关闭密码认证。具体方法如下:

第四步

打开并编辑sshd_config文件:

vi /etc/ssh/sshd_config

找到PasswordAuthentication yes这一行,把yes改成no

sed -i s/"PasswordAuthentication yes"/"PasswordAuthentication no"/g /etc/ssh/sshd_config

然后执行

systemctl restart sshd.service

来刷新一下配置,记得不要把窗口关了,此时再试一下密钥登录,登录成功后再关掉窗口,以免配置失误把自己锁外头,此时应该已经不能用密码登录而只能用SSH key登录了,配置成功。

linux

如何在windows8中进入安全模式

Privoxy不完全教程——实现自动切换代理(AutoProxy)与广告屏蔽(AdblockPlus)

comments powered by Disqus