centos7 配置SecureCRT ssh证书登录
1. 前言
目前远程管理Linux服务器时主要使用ssh方式远程登录,ssh有密码和证书登录,初学者一般使用密码登录,甚至是root账号登录,密码是123456。但是在实际工作中,基本都是证书登录,内网机器可能是通过密码登录的,但是在外网的机器,如果使用密码登录,会有安全隐患,容易受到攻击,真正的生产环境,ssh都是使用证书登录。
2. 证书登录的步骤
-
客户端生成证书:私钥和公钥,然后私钥放在客户端妥当保管,一般为了安全,客户端在生成私钥时,需要设置一个密码,其他人就算拿到私钥,没有密码也是无法解开的。
-
服务器中添加信任公钥:把客户端生成的公钥,上传到服务器,添加到指定的文件中,修改sshd配置,重启sshd服务。
假设客户端想通过私钥登录其他服务器,同理需要上传公钥到服务器,可以使用同一个公钥私钥对,也可以重新生成一对
服务器如果要配置多个客户端证书登录,把需要登录的客户端公钥添加到指定的文件中
真实工作中:员工生成好密钥对,公钥发送给运维人员,开通一台或多台服务器的权限,员工有责任保护好私钥,为了防止恶意拷贝,最好设置密码。
3. 操作步骤
3.1 客户端生成密钥
-
命令行方式
ssh-keygen -t rsa # rsa是一种密码算法,还有一种是dsa # 输入命令后根据提示设置密码,路径等 # 最好会生成id_rsa和id_rsa.pub两个文件,有pub的为公钥,另一个为私钥
-
secure CRT创建
- 主菜单->工具->创建公钥->选择RSA->填写密码->密钥长度1024->选择格式为OpenSSH及保存路径
- 生产2个文件,默认名为Identity和Identity.pub
- Identity为私钥,Identity.pub为公钥
3.2 服务端
-
把上一步生成的公钥上传到服务器
scp连接到服务器,上传公钥文件到服务器
securecrt密码连接到服务器,连接tab页右键新建sftp连接
.ssh文件夹权限设置为700,authorized_keys文件权限设置为600# scp命令方式 scp ~/.ssh/id_rsa.pub user@<server ip>:~ cat id_rsa.pub >> ~/.ssh/authorized_keys
多个公钥追加到authorized_keys文件中
ssh使用哪个账户登录,就把公钥上传到对应账号的home目录下的~
-
修改ssh服务器配置
vim /etc/ssh/sshd_config # 禁用root账户登录,非必要,为了安全请配置 PermitRootLogin no # 是否让sshd去检查权限, StrictModes no # RSAAuthentication为version1的配置,centos7.4以后不支持version1了 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeyFile .ssh/authorized_keys # 有了证书登录,就禁用密码登录 PasswordAuthentication no
-
重启sshd服务
systemctl restart sshd.service
3.3 secure CRT测试连接
- 新建一session,输入服务的地址,端口,用户名
- 打开session设置->SSH2
- Authentication设置中取消密码登录
- 选中PublicKey->Properties
- 选择第一步生成的公钥文件
打开session设置->SSH2
- Authentication设置中取消密码登录
- 选中PublicKey->Properties
- 选择第一步生成的公钥文件