linux生成SSH密钥

linux生成SSH密钥(免密登录)/centOS8 问题总结

1.上命令

执行  ssh-keygen -t rsa -b 4096
Enter file in which to save the key  输入要保存密钥的文件 可以不输入直接回车
Enter passphrase (empty for no passphrase): 输入创建密码 在使用秘钥的时候需要数据密码 也可不输入
Enter same passphrase again: 再次输入密码
此时秘钥应该生成成功了
执行  ll ~/.ssh/   这个目录下面一个公钥一个私钥  id_rsa   id_rsa.pub
私钥需要保存下来 登录的时候使用
执行 cat id_rsa.pub >> authorized_keys 将公钥追加到authorized_keys文件中
     或者 mv id_rsa.pub authorized_keys  将名称直接改成authorized_keys
执行 chmod 600 ~/.ssh/authorized_keys 赋权限
执行 sz id_rsa (没有这个命令 要先安装  yum -y install lrzsz) 或者用xftp下载私钥
执行 vim /etc/ssh/sshd_config

修改配置文件
Port 12345   端口号默认 22  可以不用修改,修改后安全性更高
PasswordAuthentication no           ##yes 改为no,不使用密码登录
PubkeyAuthentication yes         ##去掉注释,开启公钥验证
AuthorizedKeysFile      .ssh/authorized_keys          #默认应该就是这样的

执行  systemctl restart sshd  重新启动ssh

恭喜您 可以用私钥登录了
看到这里你是不是报错了
刚刚是不是改了端口,如果不是这里可能不能解决你的问题
修改了端口执行重启ssh报错
先执行 semanage port -l | grep ssh 看看ssh都有哪些端口开放的
执行 semanage port -a -t ssh_port_t -p tcp 12345  开放你需要修改的端口
再 systemctl restart sshd  重新启动ssh是不是成功了

还有一点
执行 firewall-cmd --zone=public --list-ports 看看防火墙都开了哪些端口 没有刚刚的需要打开
执行 firewall-cmd --permanent --add-port=12345/tcp 开放端口
执行 firewall-cmd --reload 重启防火墙

完结



2.当使用JSCh.出现问题

错误信息: com.jcraft.jsch.JSchException: invalid privatekey: [B@4aab4fb0
问题原因:ssh免密格式OPENSSH不支持!
解决办法
1. 删除原来的密钥

rm -rf ~/.ssh/

2.换一种格式,重新生成(执下面行命令后,全敲回车)

ssh-keygen -t rsa -m PEM

生成的文件内容为:RSA 类型

posted @ 2022-09-07 16:36  剑心空明  阅读(28)  评论(0编辑  收藏  举报  来源