生成密钥
使用ssh-keygen命令生成密钥,会有提示,一路默认就好了(如果已经有密钥对,就不需要这个一步骤,自己创建相关的文件即可)
ssh-keygen
生成之后会在用户的根目录生成一个 “.ssh”的文件夹
cd ~/.ssh
# 目录的权限必须是700
chmod 700 /root/.ssh/
进入后,“.ssh”会有以下几个文件
authorized_keys id_rsa id_rsa.pub known_hosts
authorized_keys文件,存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥,执行以下命令,将公钥添加到该文件里
# 一定要用这个命令,不要用手工赋值到这个文件进去,不然很有可能不行!!!
cat id_rsa.pub >> authorized_keys
# 文件权限必须是600
chmod 600 /root/.ssh/authorized_keys
公钥添加完成之后,公钥就没什么用了,可以删除
rm -rf id_rsa.pub
id_rsa文件文件:是生成的私钥文件,要保存好,放到windows用户目录的.ssh文件夹下
know_hosts文件: 是已知的主机公钥清单,这里没什么用
配置sshd_config
打开配置文件
vim /etc/ssh/sshd_config
修改以下几处:
PasswordAuthentication no # 这个好像不一定修改为no,也允许输入密码登录
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改完成之后,重启sshd服务
service sshd restart
windows登录
完成以上步骤,windows下,就可以免密登录了,如果还是弹出密码输入框,说明公钥或者权限有问题
ssh root@192.168.253.134