在阿里云有购买一台服务器,一直都使用口令的认证方式。虽然一直没有出现什么问题(阿里云有云盾),但总以为这种登录方式欠妥。由于公司通常都用密钥认证的登录方式。因而今天也把本身服务器的登录方式换成了秘钥的登录方式。整个过程没有难点,写这个blog主要是记录下。git
使用密钥认证分3步:
shell
生成密钥安全
放置密钥、配置ssh服务器
配置ssh客户端使用密钥登录 ssh
能够经过上面任意一种方式生成密钥;阿里云
完成以后把生成的密钥保存为文件spa
保存为 id_rsa.pub (公钥)rest
运行命令 ssh-keygen -t -rsa
code
使用到Xshell登陆到服务器,进入到“/root/.ssh/”目录blog
将id_rsa.pub发送到服务器,而后运行以下命令,将公钥(Public Key)导入到“authorized_keys”文件:
[root@yearnfar ~]# cd /root/.ssh/ [root@yearnfar .ssh]# cat id_rsa.pub >> authorized_keys [root@yearnfar .ssh]# chmod 600 authorized_keys [root@yearnfar .ssh]# chown yearnfar:yearnfar authorized_keys # 用户、用户组改为本身的
验证登录是否正确,在ssh客户端配置登录方式由password改成publickey,文件使用生成的公钥文件便可
若是登录失败,请检查ssh配置文件(/etc/ssh/sshd_config)中的PubkeyAuthentication是否为yes。
若是验证成功的话就能够关闭密码登录方式了,编辑/etc/ssh/sshd_config,将PasswordAuthentication改成no,ChallengeResponseAuthentication改成no
重启sshd(service sshd restart)
PS:
1. 要确保目录 .ssh 属于当前用户而且权限是700
2. 确保文件 authorized_keys 属于当前用户而且权限是600
/home/user 目录也必须是700!!!若是你用root改过它权限,也会致使登录不了
使用密钥认证登录,不要去设置root的密钥认证,能够经过其余用户使用su或者sudo得到超级管理员权限