1.客户端生成证书密钥对(我的客户端是windows系统,直接使用了用户目录下.ssh/文件夹内原来为git创建的密钥对)
2.假设centos服务端IP为123.123.123.123,用户名为abc,将公钥上传到centos服务器abc用户目录下
scp C:\Users\我的用户名\.ssh\id_rsa.pub abc@123.123.123.123:/home/abc #执行后需要输入abc的密码
3.,使用用户名密码登录centos服务器,创建目录.ssh/,并修改权限
mkdir /home/abc/.ssh
chmod 700 /home/abc/.ssh
4.服务器创建空的可信任key的存放文件authorized_keys,修改权限,将客户端公钥内容放入该文件
touch /home/abc/.ssh/authorized_keys
chmod 644 /home/abc/.ssh/authorized_keys
cat /home/abc/id_rsa.pub >> /home/abc/.ssh/authorized_keys
5.修改sshd服务配置
sudo vi /etc/ssh/sshd_config #这里需要用管理员权限
找到以下参数,取消前面的注释后保存
PubkeyAuthentication yes
systemctl restart sshd #重启sshd服务
6.客户端用私钥登录
ssh abc@123.123.123.123 -i C:\Users\我的用户名\.ssh\id_rsa #-i和后面的参数可以省略
7.为了方便登录,可以在客户端的.ssh/目录下增加配置文件config,内容如下
Host centos_abc
HostName 123.123.123.123
Port 22
User abc
IdentityFile C:\Users\我的用户名\.ssh\id_rsa
以后就可以用如下方式登录
ssh centos_abc