macOS 使用 ssh key 登陆服务器

先生成公钥和私钥,在 Mac OSX 终端(或 iTerm 2 等)中进入 ~/.ssh 目录,输入:

$ ssh-keygen -t rsa

会询问一些问题,直接全部回车,即可在 ~/.ssh 目录中生成 id_rsa(私钥) 和 id_rsa.pub(公钥)文件。我们需要将公钥上传到 testhost 服务器的 ~/.ssh 目录下面,因为第二种方式中我们已经配置了 testhost 服务器,scp 也能识别这个服务器,所以,可以使用如下命令将文件传输到 testhost 服务器中:

$ scp ~/.ssh/id_rsa.pub testhost:~/.ssh/

接下来,用第二种方式登录到 testhost 服务器中,在 ~/.ssh 目录中使用以下命令将 id_rsa.pub 更名为 authorized_keys:

$ mv id_rsa.pub authorized_keys

最后确保下文件权限正常:

$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys

现在,我们可以在 Mac OSX 的终端中使用 ssh testhost 登录到 testhost 服务器了,无需输入密码,更无需记忆服务器参数。

如果无法连接,请在服务器的 /etc/ssh/sshd_config 文件中查看 PubkeyAuthentication 的值是否为 yes,如果不是,请修改为 yes ,并使用以下命令重启 ssh 服务:

$ /etc/init.d/ssh restart

如果需要禁止密码登录,同样可以编辑 /etc/ssh/sshd_config 文件中 PasswordAuthentication 的值为 no 并 重启 ssh 服务。

CentOS 7 可能依然无法登陆,提示:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)。解决方式:

$ restorecon -r -vv ~/.ssh/authorized_keys

发表评论

电子邮件地址不会被公开。 必填项已用*标注