先生成公钥和私钥,在 Mac OSX
终端(或 iTerm 2
等)中进入 ~/.ssh
目录,输入:
1 | $ ssh-keygen -t rsa |
会询问一些问题,直接全部回车,即可在 ~/.ssh
目录中生成 id_rsa
(私钥) 和 id_rsa.pub
(公钥)文件。我们需要将公钥上传到 testhost
服务器的 ~/.ssh
目录下面,因为第二种方式中我们已经配置了 testhost
服务器,scp
也能识别这个服务器,所以,可以使用如下命令将文件传输到 testhost
服务器中:
1 | $ scp ~/.ssh/id_rsa.pub testhost:~/.ssh/ |
接下来,用第二种方式登录到 testhost
服务器中,在 ~/.ssh
目录中使用以下命令将 id_rsa.pub
更名为 authorized_keys
:
1 | foo@testhost: $ mv id_rsa.pub authorized_keys |
最后确保下文件权限正常:
1 | foo@testhost: $ chmod 700 ~/.ssh/ |
现在,我们可以在 Mac OSX
的终端中使用 ssh testhost
登录到 testhost
服务器了,无需输入密码,更无需记忆服务器参数。
如果无法连接,请在服务器的 /etc/ssh/sshd_config
文件中查看 PubkeyAuthentication
的值是否为 yes
,如果不是,请修改为 yes
,并使用以下命令重启 ssh 服务:
1 | foo@testhost: $ /etc/init.d/ssh restart #6.0 |
如果需要禁止密码登录,同样可以编辑 /etc/ssh/sshd_config
文件中 PasswordAuthentication
的值为 no
并重启 ssh 服务。