0.背景
在Hadoop的伪分布式等场景中,我们需要主机可以ssh到自身启动守护进程,所以需要无密码登录localhost。
1.正常的流程
在其他Unix-like的系统中,我们使用一下方式即可。
ssh-keygen -t -rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 1
- 2
关于authorized_keys,如果A要无密码登录B,则需要把A的公钥写入B的authorized_keys中国。这里A/B均是自身。
2.Mac系统的问题
Mac系统默认不能被远程登录(自己远程登录自己同样属于)。
所以,在使用以上配置后,键入ssh localhost
会出现以下提示。
ssh: connect to host localhost port 22: Connection refused
解决方法:打开系统偏好,在右上角搜索框中键入“互联网共享”或者“Internet sharing”。在打开的页面中,勾选中左边的“远程登录”或者“Remote Login”即可。
Reference
1.https://stackoverflow.com/questions/6313929/how-do-i-open-port-22-in-os-x-10-6-7