作者:admin,发布日期:2019-05-26
阅读:3677;评论:2
写在开头
通过SSH协议,用户可以通过终端机访问和使用远程linux服务器,ssh的端口为22。但每次进行连接都要输入密码。如果管理几台到十几台集群,那可以应付的的过来。如果集群增加了几百,上千台。那么使用SSH连接起来就很不方便,同时密码的安全性也不够,我们就可以使用密钥去登录Linux服务器,这样我们只需要加载密钥文件,就可以直接登录系统。
密钥的生成
工具:Xshell(Putty全家桶也可以)
打开Xshell,在工具栏中找到“新建用户密钥生成向导”并单击打开
密钥类型可以自己选择,这里我们选择默认密钥,密钥长度2048位,如果需要更严格的加密,可以增加密钥长度,当然也会相应增加运算消耗。
点击下一步,等待生成完成
此处自己按照实际修改,密码可以二次加密密钥,设置密码后,只有密码正确,密钥才能使用。
当弹出空密码提示时,点击是,密钥就会自动导入xshell密钥库,我们需要保存生成出来的公钥,放到服务器上,私钥需自己保管,不可在公共场合泄露。
点击保存为文件,保存公钥
然后点击完成,密钥已经创建完成,我们可以使用密钥管理器,导出生成的私钥,以便其他地方使用。
密钥的使用
使用Xshell连接服务器,并登录
mkdir -p ~/.ssh # 在用户目录下创建密钥目录 vim authorized_keys # 编辑公钥文件
复制刚刚导出的公钥,放入authorized_keys文件中
同理,可以放入多个公钥,以换行符分隔。
至此,你的服务器应该已经同时支持密码和密钥登录了
公钥的保护
为防止其他脚本修改authorized_keys文件,我们可以对其加锁使其只读。
chattr +i ~/.ssh/authorized_keys
设置仅密钥登录
vim /etc/ssh/sshd_config # 此处需要有root权限
找到以下位置:
PasswordAuthentication yes
将yes改为no,禁止密码登录
# PubkeyAuthentication yes
将前方注释去掉,开启密钥登录
修改完后:wq!保存,并且重启sshd服务,加载配置
systemctl restart sshd.service
至此,密钥登录设置完毕
使用密钥连接服务器
使用Xshell连接服务器时,身份验证选择Public Key 然后选择刚刚的密钥,输入密钥的密码(如果没有就留空),点击确定即可连接。