使用SSH key登录服务器
前言
首先要有个概念,为什么要使用ssh密钥的形式登录,使用用户密码直接登录不行吗?答案是可以,可以只使用密码登录,但是如果服务器暴露在外网,有很大的安全隐患,很容易被别有用心的人扫描到SSH端口,然后被暴力破解。而密钥登录的方式,会增强你服务器的安全性。当然,还有一种证书登录的方式,这里先不谈,先说一下大多数云服务厂商所支持的方式–密钥登录。
本文不讲述原理,仅简单提下,密钥登录需要公钥和私钥,公钥保存在服务器上,负责加密,私钥保存在客户端侧,用来解密,同时,还会保存服务器端公钥的指纹,来确定信息来自服务器。
下面快来看下怎么为你的服务器使用密钥登录吧。
太啰嗦?点我直达
在一些云服务厂商中,可以很方便的对ssh密钥进行管理,例如腾讯云
可以看到,使用腾讯云可以很方便的创建、删除密钥,绑定解绑实例。
但是,并不是所有的云厂商的设计都如此的方便,比如天翼云,
关于实例的绑定,目前我只找到了新建主机时添加密钥,已有的主机实例绑定密钥暂未找到。怎么办?手动安装吧。
个人最喜欢的是使用XShell生成密钥,它可以方便的进行生成与管理密钥,交互上也是很舒服的。不想用,或者Mac上没有XShell,那么手动命令行敲一下呗。
生成密钥对
1 | ssh-keygen |
中间过程会提示是否为私钥添加密码,建议加一下,其他默认回车就好。
之后需要我们把生成的公钥public key保存到服务器上并添加相应的权限。
1 | cd .ssh |
接下来,配置ssh为密钥登录
1 | nano /etc/ssh/sshd_config |
确认一下sshd_config中的这3项是否如下所示:
1 | RSAAuthentication yes |
确认后,保存,退出登录
1 | logout |
再使用密钥登录你的服务器,来继续修改配置文件
1 | PasswordAuthentication no #禁用掉密码登录 |
最后,重启 SSH 服务
1 | service sshd restart |
可以试下,已经不能通过密码登录了,至此,所有设置已经完成。