理想情况假设一切顺利,最简单的方法如下:使用ssh-keygen命令在本地生成一对密钥(Public/PrivateKey),使用ssh-copy-idusername@your-server-ip命令将本地公钥上传到远程服务器。现在使用sshusername@your-server-ip命令进行无密登录。如果之前已经在本地生成过key,那么第一步就可以省去。如何查看是否已经生成:使用ls-a~/.ssh命令查看id_rsa和id_rsa.pub文件是否已经存在,是否已经生成。现实中经常看到别人玩的很开心,自己去实践却会出现各种问题。还是那句话:踩的坑不会少!如果您遇到问题,可以看看下面列出的常见故障排除。如果在执行ssh-copy-id命令时指定了公钥,比如ssh-copy-id-i~/.ssh/id_rsa_another.pubusername@your-server-ip,注意remote也需要指定连接时需要这个公钥,否则默认会使用~/.ssh/id_rsa.pub来匹配,所以你的连接命令应该类似这样:ssh-i~/.ssh/id_rsa_another.pubusername@your-server-知识产权。SSH服务器可以配置为不允许公钥授权登录。检查服务器/etc/ssh/sshd_config文件中的配置是否正确:PubkeyAuthenticationyesSSH服务器可能配置为不允许root用户登录,检查服务器/etc/ssh/sshd_config文件,如果里面有PermitRootLoginno,改成yes基本原理一张时序图最能说明问题:P参考资料ssh-copy-id复制SSH密钥到服务器|SSH网站