当我们拥有一台自己的vps的时候, 很多时候, 我们会考虑服务器的安全, 安全从最简单的做起, “密码”这块, 使用一种被称为"公私钥"认证的方式来进行ssh登录. “公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa).

然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时, ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了.

步骤如下: 本地 先要在本地生成一个 rsa 的公共 key, 然后 copy 到远程你要认证的服务器创建 key:

ssh-keygen -t rsa

拷贝key到服务器端

cat /root/.ssh/id_rsa.pub | ssh root@远程服务器ip 'cat - >> ~/.ssh/authorized_keys'

远程服务器要做的事情

chmod 600 ~/.ssh/authorized_keys

//权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能

Public-key 认证机制比密码要安全, 因为密码不在网络上传输. 而且可以是用加密的方式存储的,为了安全,也可以设置一个passphrase,这样,别人拿到密钥也没有用.

如果以上步骤不能实现不输密码登陆的话,需要检查sshd服务的Pubkey认证功能是否默认打开

nano /etc/ssh/sshd_config
PubkeyAuthentication yes

如果修改后记的要重起你的ssh服务,用ssh –v来显示详细的登陆过程.

最后一步 建议不使用静态密码,我们都使用key了,修改如下内容可以关闭使用密码认证:

UsePAM yes
UserPAM no
关闭Pam的传统密码认证.