1, 首先,在suse系统上生成公钥和密钥对
ssh-keygen2 -trsa

在红框的地方记得不可以输入,直接回车
从上图可以看出生成的公钥为id_rsa_2048_h.pub,私钥为id_rsa_2048_h
然后执行echo "IdKey" id_rsa_2048_h >> /root/.ssh2/identification
2. 然后在suse系统上通过以下命令将公钥上传到centos ssh服务器
scp /root/.ssh2/id_rsa_2048_h.pub [user]@[ipaddress]#[port]:/tmp

这里我的centos服务器ssh监听的端口号为36000
3. 公钥格式转换
Centos系统ssh默认的公钥认证的公钥格式为openssh,遵循PKCS8,而suse系统的ssh默认使用的公钥认证的公钥格式为SSH2 ,遵循RFC4716,因此我们需要将suse系统传来的ssh2的公钥进行转换,转换为openssh格式
在centos系统上
cd /tmp切换到公钥上传的路径

然后通过以下命令进行转换
ssh-keygen -i -f id_rsa_2048_h.pub > id_rsa_centos.pub

然后将该公钥加入到公钥认证的认证文件中
cat id_rsa_centos.pub >> /root/.ssh/authorized_keys
4. 开启centos系统ssh服务进程的公钥认证
vim /etc/ssh/sshd_config
/etc/ssh/sshd_config是centos ssh服务的默认配置文件(编译安装的配置文件会有差异

然后保存退出
通过service sshd restart重启centos的ssh服务守护进程
5. 验证
在suse系统上ssh远程登录centos系统

无密码公钥认证登录成功。