免密登录,其实是指通过证书认证的方式登录,使用“公私钥”认证的方式来进行 ssh 登录。
我们不采用本地使用服务器生成的秘钥的方式,而是将本地的公钥添加到服务器,这样更好的保证了服务器的安全,参考 gitee、github 添加公钥的做法。
本机:mac
远程服务器:VirtualBox 上的 centos7
1、首先在 mac 上创建一对公私钥
# mac
ssh-keygen -t rsa -C '备注:公私钥'
公钥文件:~/.ssh/id_rsa.pub
私钥文件:~/.ssh/id_rsa
2、然后把公钥 id_rsa.pub 的内容复制到 centos7 上,并将文件命名为 authorized_keys
# centos7
~/.ssh/authorized_keys
3、修改 sshd_config 配置文件
# centos7
sudo vi /etc/ssh/sshd_config
# centos7
# 允许密钥认证
PubkeyAuthentication yes
# 公钥保存文件
AuthorizedKeysFile .ssh/authorized_keys
4、重启 sshd
# centos7
systemctl restart sshd.service
5、mac 登录 centos7
mac 在使用 SecureCRT 登录 centos7 时,会自动发送私钥去和 centos7 上的公钥做匹配,若匹配成功则可以登录。
如果同时使用了多种认证方式,请将 PublicKey 认证方式置顶。在配置里选择秘钥后,就可以直接连上 centos7 了。