LINUX SSH 建立密钥对
配置私钥和公钥
先检查一下服务器的ssh配置文件
/etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证 默认为 yes
PubkeyAuthentication yes # 启用公钥认证,默认为yes
在客户端执行命令 ssh-keygen -t rsa 生成密钥,会生成一个私钥和一个公钥文件,在提示输入 passphrase 时如果不输入,直接回车,那么以后你登录服务器就不会验证密码,否则会要求你输入 passphrase,默认会将私钥放在 /root/.ssh/id_rsa 公钥放在 /root/.ssh/id_rsa.pub。
windows 下面是一样的命令 我这里用的是git的命令窗口:
密钥文件会保存到,C:\Users\你的用户名\.ssh 文件夹下面
将公钥拷贝到远程服务器上的/root/.ssh/authorized_keys文件中,注意,文件名一定要叫authorized_keys。如果有多个客户端,将多个公钥以换行分开,一行一个客户端。
客户端上保留私钥,公钥可以删除。服务器上保存公钥,客户端上保存私钥。这样就可以实现无密码验证登录了。
如果想要获得最大化的安全性,禁止口令登录,
可以修改 /etc/ssh/sshd_conf 中的
PasswordAuthentication yes 改为
PasswordAuthentication no
即只能使用密匙认证的 openssh,禁止使用口令认证。
如果希望ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600