共计 1515 个字符,预计需要花费 4 分钟才能阅读完成。
购买一台服务器,一直都使用口令的认证方式。虽然一直没有出现什么问题,但总觉得这种登陆方式欠妥。因为公司一般都用密钥认证的登陆方式。于是今天也把自己服务器的登陆方式换成了秘钥的登陆方式。整个过程没有难点,写这篇文章主要是记录下。
使用密钥认证分 3 步:
1. 生成密钥
2. 放置密钥、配置 ssh
3. 配置 ssh 客户端使用密钥登陆
一 生成密钥
1. 使用 Xshell 生成密钥
可以通过上面任意一种方式生成密钥;
完成之后把生成的密钥保存为文件
保存为 id_rsa.pub(公钥)
2. 使用 git 生成密钥
运行命令 ssh-keygen -t -rsa
二 放置公钥到服务器、设置 ssh
使用到 Xshell 登录到服务器,进入到“/root/.ssh/”目录
将 id_rsa.pub 发送到服务器,然后运行如下命令,将公钥 (Public Key) 导入到“authorized_keys”文件:
[root@linuxidc ~]# cd /root/.ssh/
[root@linuxidc .ssh]# cat id_rsa.pub >> authorized_keys
[root@linuxidc .ssh]# chmod 600 authorized_keys
[root@linuxidc .ssh]# chown linuxidc: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 改过它权限,也会导致登陆不了
三 设置 ssh 客户端登陆
四 关于安全方面的一些建议
使用密钥认证登陆,不要去设置 root 的密钥认证,可以通过其他用户使用 su 或者 sudo 获得超级管理员权限
Xshell 实现 Windows 上传文件到 Linux 主机 http://www.linuxidc.com/Linux/2015-05/117975.htm
Xshell 登录 CentOS 6.3 中文乱码的解决 http://www.linuxidc.com/Linux/2013-06/86600.htm
VirtualBox4.12 文本安装 CentOS 5.4 以及 Xshell 连接教程 PDF http://www.linuxidc.com/Linux/2013-06/85575.htm
Xshell 连接 CentOS6.5 iptables 或 ls 输出乱码 http://www.linuxidc.com/Linux/2014-06/103725.htm
VMware Linux 使用 Xshell 登陆 http://www.linuxidc.com/Linux/2012-06/62546.htm
使用 Xshell 密钥认证机制远程登录 Linux http://www.linuxidc.com/Linux/2015-03/114947.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-10/123862.htm