前言
一般一台服务器的SSH权限,是会被适当的做限制的,因为一台服务器需要被多人管理并使用,root用户的密码是不会告诉每个使用者的,因为这样很容易造成密码泄露引起的服务器安全问题,那么使用公私钥配对登录就是最常用的方法了,除了能够保护root密码以外,也还有其他的好处,例如在scp或者rsync下的key的免密转发等,那么下面我们就来配置吧。
开始
使用 ssh-keygen
生成私钥和公钥
先用root用户密码登录服务器,然后输入以下命令:
ssh-keygen -t rsa
命令输入按回车键后出现的所有选项,可以使用默认配置,一直按回车键即可。
修改SSH主配置文件(选做)
该步骤可做可不做,主要目的是为了取消root用户的密码认证功能,让SSH登录只能够使用公私钥配对来实现远程登录管理。
输入以下命令:vim /etc/ssh/sshd_config
# 没有装vim的请把vim改成vi
找到PasswordAuthentication yes
然后把yes
修改为no
,然后按下esc
键,再按英文:
,输入wq
保存退出。
生成公私钥(以终端软件 SecureCRT 8.3 为例)
打开终端软件SecureCRT,然后:1、点击
Tools
,2、点击Create Public Key...
出现弹窗直接点击
下一步
,然后看到下图界面,在Passphrase
和Confirm Passphrase
输入相同的密码(该步骤可选择不填密码为空,但不建议),Comment
处填写注释,可不填,接着点击下一步
,Key length in bits:
默认选择2048
即可。出现下图界面,选择
OpenSSH Key format(new)
这种密钥格式,Pribate key filename
是选择密钥的名称以及存放位置,例如我选择默认名称
和存放在D盘
,最后点击完成即可在D盘
找到两个密钥文件,保存时点击询问是否用作默认密钥点击Yes
即可。
将公钥导入服务器
导入公钥文件,实际是为了把公钥文件内容写进服务器中的
/root/.ssh/authorized_keys
文件里面,方法有很多种,为了方便,我这边选择直接把公钥文件放进服务器,然后用cat
命令追加写入authorized_keys
文件内,root账号密码登录服务器,输入命令如下:rz
# 上传命令,如果显示无此命令则需要安装lrzsz包输入
rz
命令后弹出下图界面,然后找到公钥文件所在的目录,选择公钥文件,然后点击Add
,最后点击OK
即可。此时在输入
ll
命令即可看到公钥文件已经上传到服务器(例如我上传到了.ssh
文件夹)把公钥文件内容写进
authorized_keys
文件内
上图可以看到.ssh
文件夹内没有authorized_keys
文件,所以需要先创建,输入如下命令:cat Identity.pub
# 打印Identity.pub文件内容
touch authorized_keys
# 当前目录(.ssh)创建authorized_keys文件
cat Identity.pub >> authorized_keys
# 把Identity.pub文件内容写入 authorized_keys文件内
# 因为两个文件都在 .ssh 文件夹N内,如果不在的话要输入绝对路径,例如cat /root/Identity.pub(authorized_keys文件必须放在 .ssh 目录内)
cat authorized_keys
# 打印authorized_keys文件内容,查看是否写入成功
重启SSH服务
在终端软件
SecureCRT
找到服务器,1、右键选择Properties
,2、点击SSH2
,3、找到Authentication
,只勾选PublicKey
,然后点击OK
即可。双击服务器连接并登录,出现图2内容则代表公私钥配对登录成功。
补充说明
如出现没有配对密钥的情况,请添加密钥
1、点击Tools
,2、选择Manage Agent Keys
,3、出现图2弹窗,点击Add..
,4、找到存放密钥的文件夹,选择没有后缀的密钥文件,5、点击Open
,然后之前配置好的密钥密码,再点击OK
,就可以看见密钥添加成功。
最后
- 本次教程到这里就结束了,本次教程属于运维常规手段,操作不难,主要是给初学者观看,希望对看到本篇博文的朋友有用。
- 最后说一声,再见👋。