使用SSH密钥登陆,可解决每次登陆服务器都要输入密码的问题。
注:SSH登陆原理
SSH公钥相当于锁,SSH私钥相当于钥匙,将本地mac的公钥放到服务器上,类似于给服务器上了把锁,然后使用本地mac的私钥可以打开这把锁,就不用再输入密码,并且安全性也得到提高。
具体操作:
服务器端设置:
1. iterm打开一个tab,登陆服务器,修改sshd的配置
vi /etc/ssh/sshd_config
将以下三条配置取消注释(将前边的#去掉,下边为已配置好内容)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys # 公钥配置文件
2. 完成以上配置之后,重启sshd服务
/sbin/service sshd restart
本地mac配置:
1.生成公钥和私钥(如果已经存在,可跳到下一步)
ssh-keygen -t rsa
此时进到 ~/.ssh目录可以看到 id_rsa 和 id_rsa.pub 两个文件
cd ~/.ssh
ls
2. 将上边 本地mac 的 id_rsa.pub里边的内容,复制到 服务器上的 .ssh/authorized_keys 文件中
2.1 可以直接cat 查看本地id_rsa.pub文件内容,然后复制粘贴到 服务器.ssh/authorized_keys中,
2.2 或者将id_rsa.pub文件夹上传到服务器,再用命令 复制(如下)
2.2.1 scp命令 上传到服务器
scp ~/.ssh/id_rsa.pub xxx@host:/home/id_rsa.pub
2.2.2 将公钥导入(在服务器进行)
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
3. 服务器修改权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
无密码登陆:
经过上述设置,已经可以免密登陆,(但此时还没有将密码登陆取消)
iterm 新建tab 尝试免密登陆
ssh root@ip # 默认端口登陆
ssh root@ip -p 端口号 # 指定端口登陆
输入以上命令,即可登陆成功
⚠️:原密码登录的窗口先不要断开和关闭,新建tab窗口尝试无密码登录,防止无密码登录失败。
无密码登陆成功,愿意的话,可以设置将密码登陆禁用,这样更安全
设置服务器sshd配置,禁用密码登陆(参考上边的 服务器设置 部分)
vi /etc/ssh/sshd_config
#将PasswordAuthentication设置成no,然后重启