Mac 下 SSH 免密码登录

服务器公钥配置

本地进入~/.ssh/ 目录,找到id_rsa.pub,输入命令:cat id_rsa.pub,复制输出公钥内容。
可以通过:

ssh -p 端口号 username@xxx.xxx.xxx.xxx

说明:端口号非必填项,如果服务器是默认链接端口,就可以不填。

输入密码后,即可进入服务器,然后

cd ~/.ssh

进入~/.ssh目录,输入:

cat 刚才复制的内容粘贴在这里 >> authorized_keys2

赋予这个新建的authorized_keys2一定的读写权限:

chmod 600 authorized_keys2

配置好后,输入exit退出服务器,接着在本地配置下面内容。

ssh本机配置(单服务器)

vim ~/.ssh/config

Host 根据自己的喜好填写主机名(爱填啥填啥,好记就行,因为这个是我们后面登录需要用到的。)
HostName xxx.xxx.xxx.xxx(即服务器IP地址)
User username
Port 实际端口号

在本地终端输入ssh 主机名 即可马上登陆远程服务器。

多服务器登录配置

有些同学在看完上面单机版配置后,心里肯定想,我如果再配置一台是不是就需要在本地新建一个config2文件呢。
其实不然,只需要在配置多台服务器时,在config文件中进行追加服务器登录信息即可。

以下是我本地~/.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直接登录1号服务器
同样,可以在命令行输出ssh hostName2 直接登录2号服务器
不配置config的结果就是每次都需要输入一大串内容和复杂的密码进行登录,非常耗费时间。
如同本文开篇输入的:

ssh -p 端口号 username@xxx.xxx.xxx.xxx (回车,接着长长的难记的密码,通常是复制过来,但是找文件,打开,复制都是时间啊,如果你要在多台服务器之间来回折腾,这个时间省下来不就可以去泡妹子,或者陪媳妇了嘛!)

本作品采用《CC 协议》,转载必须注明作者和本文链接
努力是不会骗人的!
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8

我也按照楼主这样配置了,但是遇到了一个大坑,就是centos配置ssh免密码登录后,仍提示输入密码。最后我查了好久才解决,分享给大家我的解决方案。[http://www.cf2z.club/blog/Centos-configure...]

6年前 评论

消灭0回复,0评论

6年前 评论

Mac 可以利用 ssh-copy-id 这个小工具将公钥上传到服务器

6年前 评论

补充建议:上传公钥到服务器之后修改 ssh 服务的 sshd_config 配置文件

RSAAuthentication yes 开启RSA验证

PubkeyAuthentication yes 是否使用公钥验证

PasswordAuthentication no 禁止使用密码验证登录

PermitRootLogin no 禁止root用户登录

6年前 评论

多服务器要生成不同的id_rsa.pub文件吧

6年前 评论

@mingyun 不需要,这个文件是本地生成的,生成一次就可以了,然后部署到多个服务器上。就相当于你有同一把钥匙,可以开启多扇大门。

6年前 评论
piupiu

补充一下,可以用这条命令直接将公钥推送到服务器:scp id_rsa.pub user@ip:~/.ssh

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!