前言
最近要用到 Mac 下的 sshd 服务, 但每次使用的时候都是出现各种状况,所以特写此篇文章对 Mac下的sshd服务做一下梳理。在 Mac 下启动 sshd 服务的基本流程:
- 在 Mac 系统上打开 ssh 服务权限
- 修改 sshd 配置
- 在登录制生成 rsa key
- 将 rsa key 存到 server 端的 ~/.ssh/authorized_keys文件中
- 重启ssh服务
在Mac上打开sshd访问权限
- 勾选 Apple menu > System Preferences > Sharing > Remote Login (启动台 ->系统偏好设置->共享->远程登录)
- 选择任何人
修改 sshd 配置
在/etc/ssh/sshd_config文件中只需打开下面几项:
- AuthorizedKeysFile .ssh/authorized_keys 指定被授权的用户的rsa 加密key存放的位置。
- UsePAM 使用 PAM 进行权限管理。
- AcceptEnv LANG LC_* 指明本地位置信息。
- Subsystem sftp /usr/libexec/sftp-server 默认协议。
在客户端生成 ssh rsa key
- 执行 ssh-genkey -t rsa 命令,然后要求输入的地方一直回车。
- 打开~/.ssh/id-rsa.pub文件,拷贝里面的内容。
启动 sshd 服务
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
停止 sshd 服务
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
查看sshd服务是否启动
sudo launchctl list | grep ssh
know_hosts 作用
在 Mac 上的~/.ssh/
目录下有一个 know_hosts文件,里边存放了所以你访问过的 sshd 服务,它是一个缓冲文件。每当你通过 ssh 远程访问时,它都会先到这个文件中去查找是否有以前的记录。
在一些情况下,如果你访问某台sshd服务出现了错误,那么当你下次访问时还是报错,很可能就是这个文件导致的。所以出现类似问题时,你要记得清一下这个文件中的内容。