SSH公钥认证
关于公钥认证的原理,维基百科上的这个条目是一个很好的起点: http://en.wikipedia.org/wiki/Public-key_cryptography。
如果你的主目录下不存在 .ssh 目录,说明你的 SSH 公钥/私钥对尚未创建。可以用这个命令创建:
$ ssh-keygen
该命令会在用户主目录下创建 .ssh 目录,并在其中创建两个文件:
-
id_rsa
私钥文件。是基于 RSA 算法创建。该私钥文件要妥善保管,不要泄漏。
-
id_rsa.pub
公钥文件。和 id_rsa 文件是一对儿,该文件作为公钥文件,可以公开。
创建了自己的公钥/私钥对后,就可以使用下面的命令,实现无口令登录远程服务器,即用公钥认证取代口令认证。
$ ssh-copy-id -i .ssh/id_rsa.pub user@server
说明:
- 该命令会提示输入用户 user 在 server 上的SSH登录口令。
- 当此命令执行成功后,再以 user 用户登录 server 远程主机时,不必输入口令直接登录。
- 该命令实际上将 .ssh/id_rsa.pub 公钥文件追加到远程主机 server 的 user 主目录下的 .ssh/authorized_keys 文件中。
检查公钥认证是否生效,运行SSH到远程主机,正常的话应该直接登录成功。如果要求输入口令则表明公钥认证配置存在问题。如果SSH服务存在问题,可以通过查看服务器端的 /var/log/auth.log 进行诊断。
ssh-copy-id : https://anoncvs.mindrot.org/openssh/contrib/ssh-copy-id?view=co
http://henry.precheur.org/system/ssh-copy-id