Mac下的 sshd 服務

前言

最近要用到 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服務出現了錯誤,那麼當你下次訪問時還是報錯,很可能就是這個文件導致的。所以出現類似問題時,你要記得清一下這個文件中的內容。