1、登陆到服务器修改sshd_config
登录服务器,输入命令vi /etc/ssh/sshd_config修改配置文件
找到RSAAuthentication、PubkeyAuthentication、AuthorizedKeyFiles、StrictModes所在的行,如果被#注释了,就取消#号,改为如下配置:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeyFiles .ssh/authorized_keys
StrictModes no
这里解释一下:
RSAAuthentication设置为yes,意思是设置开启使用RSA算法的基于rhosts的安全验证;
PubkeyAuthentication设置为yes,意思是设置开启公钥验证;
AuthorizedKeyFiles后面的目录,是你上传的公钥所保存的文件;
StrictModes设置为no,意思是设置关闭ssh在接收登录请求之前先检查用户家目录和rhosts文件的权限和所有权。
修改好ssh的配置文件后保存并退出,使用systemctl restart sshd.service重启SSH服务
2、客户端生成公钥
首先我们要在我们的mac上电脑上生成公钥和私钥,在终端中输入以下命令:
cd ~/.ssh
首先进入~/.ssh目录,之后:
ssh-keygen -t rsa
或给你的key取个名字 ssh-keygen -t rsa -C \"your_email@example.com\"
之后就可以一路回车,一般都不设置密码,即可在~/.ssh目录中生成私钥文件(id_rsa)和公钥文件(id_rsa.pub)
3、服务端加入客户端公钥
Copy 客户端生成好的公钥文件 id_rsa.pub 到服务器的。~/.ssh/ 目录下,并且改名 authorized_keys
如果已经存在authorized_keys 文件 那么需要将你的新公钥追加到后面
cat id_rsa.pub >> authorized_keys
然后删除id_rsa.pub
然后修改权限,这部很重要
.ssh目录权限一般为755或者700。
authorized_keys权限一般为644
现在,我们就可以正常的在mac 终端中使用ssh来登录服务器了,无需输入密码。
4、客户端设置别名
进入客户端 ~/.ssh 创建config文件
Host hostName1(暂时叫它1号服务器)
HostName xxx.xxx.xxx.xxx
User username
Port 端口号
Host hostName2(暂时叫它2号服务器)
HostName xxx.xxx.xxx.xxx
User root
然后 ssh hostName1 直接登陆
总结:
如果自动登录失败可以查询服务器的日志 /var/log/secure
一般会出现错误: Authentication refused: bad ownership or modes for directory /home/用户
第一反复检查目录和文件的权限是否正确,这也是网上流传的最多的解决方案,但是我第一次就出现了这个问题,这个方案没有解决
第二检查服务的sshd_config配置,
RSAAuthentication设置为yes,意思是设置开启使用RSA算法的基于rhosts的安全验证;
PubkeyAuthentication设置为yes,意思是设置开启公钥验证;
AuthorizedKeyFiles后面的目录,是你上传的公钥所保存的文件;
StrictModes设置为no, (我就是掉到这个坑里的)
继续阅读与本文标签相同的文章
自然语言处理之AI深度学习顶级实战
-
3D打印在玩具行业的应用
2026-05-18栏目: 教程
-
湖北移动誓师第七届世界军人运动会通信保障
2026-05-18栏目: 教程
-
环保新主义:企业无纸化办公
2026-05-18栏目: 教程
-
华能+华为=光伏技术标杆
2026-05-18栏目: 教程
-
淘集集经营模式变更:合伙人自营,主要供应商已成股东合伙人
2026-05-18栏目: 教程
