当前位置: 首页 > news >正文

VScode密钥(公钥,私钥)实现免密登录【很细,很全,附带一些没免密登录成功的一些解决方法】

一、 生成SSH密钥对

ssh-keygen
或者
ssh-keygen -t rsa -b 4096区别:-t rsa可以明确表示生成的是 RSA 类型的密钥-b参数将密钥长度设置为 4096 位默认:2048 位密钥不指定-t参数,ssh -keygen默认也可能生成 RSA 密钥
【确保本机安装ssh, ssh 或者 ssh-V去检查】


在这里插入图片描述

【注意:这里一直按回车。第一个是让你选择生成路径,这里我们默认就行(默认路径:C:\Users\Encounter.ssh)。第二个是在密钥再加密码,没必要,如果这样操作就不是免密登录了。】

具体解释:


在这里插入图片描述


生成情况如下:(id_rsa为私钥,id_rsa.pub为公钥)

本地路径:

二、 将公钥放在服务器【配置服务器】

路径是:账户名下的.ssh文件夹(如果没有可以自己创建)

在这里插入图片描述

将id_rsa.pub上传后,
执行:cat id_rsa.pub > authorized_keys 生成authorized_keys。【也可以创建一个authorized_keys,把id_rsa.pub里面的内容复制进去。下面的参考文献中还有一些其他方法,大家可以自行选择自己喜欢的。】

三、配置Vscode文件【配置本地】

打开SSH配置文件:

在这里插入图片描述

在这里插入图片描述


加上IdentityFile 后面的是你私钥的位置:

在这里插入图片描述


四、补充操作:如果上述做完之后,还是连接不上

1.可尝试执行如下命令

chmod 700 ./.ssh
chmod 600 ./.ssh/authorized_keys
原因是SSH不希望用户目录和~/.ssh目录对组有写权限
如果没有解决可尝试使用执行 sudo cat /var/log/secure 查看系统的安全日志,根据具体日志内容解决

2.vim /etc/ssh/sshd_config (这个可能影响不大,可以试试)

在这里插入图片描述

3.检查本地的生成的id_rsa.pub和服务器的authorized_keys里的内容是否一致。【当时笔者,不知SSH的正确路径(在服务器根目录下建立.ssh),而服务器正确位置(账户下的.ssh)之前也有authorized_keys,但并不是我生成的id_rsa.pub】


五、验证密钥是否配置成功

当配置完毕。不需要重新再连接服务器。
随便打开一个文件,如果不用输入密码就是成功了。【因为如果没配置之前,你切换文件夹 是 需要输出密码的,也相当于重新连接服务器】

在这里插入图片描述


六、一个ip配置2个免密登录

1 .ssh正确路径:账户下面。即 root/.ssh 或者chengzw/.ssh

具体图解:

根目录下:

在这里插入图片描述

chengzw账户:

在这里插入图片描述

root账户:

在这里插入图片描述

2.如果想实现root和chengzw账户都是免密登录,可以分别在其对应的账户.ssh目录下,将authorized_keys中放入正确的公钥(其实只要authorized_keys中的公钥正确,.ssh目录下没有id_rsa.pub也没事)【2个账户的公钥可以是同一个也可以不同,只要在本地的配置文件正确即可(即:操作的第三步)。】

chengzw账户:

在这里插入图片描述

root账户:(这里的id_rsa和known_hots是服务器自带的我们不用管)

在这里插入图片描述

3.另外经过笔者反复尝试,在2个账户都设置了免密登录之后,当Host一样的时候,但是账户和端口不一样,他会从上往下执行,即如下图,先免密登录30488端口的root账户。如果想免密chengzw账户可以把对应账户放前面即可。之后连接服务器即可。

在这里插入图片描述

在这里插入图片描述

七、参考文章:

1.配置visual studio code 用秘钥远程连接SSH服务器:https://blog.csdn.net/liang_baikai/article/details/1371521362.配置vscode 远程开发+ 免密登录:https://zhuanlan.zhihu.com/p/2224524603.【VSCode】远程开发配置密钥连接 :https://www.cnblogs.com/servlet-context/p/18148623


补充:

1.由于一开始没用Vscode连root账户,chengzw账户还没传文件以及文件重命名的权限,所以只能网页端传上去之后再移动(传文件的位置也有限制)。
在根目录上建立.ssh的时候(当时建错了,应该在账户目录下建立.ssh)
cp     源           目的
cp cheng/ id_rsa.pub .     【当前目录是服务器根目录】可以执行
cp cheng/ id_rsa.pub .     【当前目录是.ssh】 无法执行找不到目录
cp /cheng/ id_rsa.pub .    【当前目录是.ssh】 可以执行2:我所用的服务器ssh连接Vscode的有2种登陆方式。【浪潮公司的】
一种是root的, ssh root@ip -p 30488    【登录密码:AIstation平台上面给的】
一种是账户,   ssh chengzw@ip -p 60022 【登录密码:自己的账户密码】我发现自己账户登录传不了文件以及改不了文件名【没权限】。但是当实现免密登录之后就可以有权限了,很奇怪。
另外,chengzw没有提权权限(sudo命令)3:AIstation的服务器好像会重置,我在根目录建立的.shh文件夹没了,以及修改的vim /etc/ssh/sshd_config的里面内容都重置了,也说明修改vim /etc/ssh/sshd_config 用处不大。小细节:1.authorized_keys可以打开写多个公钥,把不同的公钥id_rsa.pub的内容放里面。2.服务器验证时候,是验证authorized_keys,与d_rsa.pub无关。3.本地ssh配置的 IdentityFile "C:\Users\Encounter\.ssh\id_rsa" 中 id_rsa是可以改名的,只要能和本地名对上即可(要是有多个ssh私钥是 需要 重命名 去 管理的)。

相关文章:

  • [架构之美]Spring Boot集成MyBatis-Plus高效开发(十七)
  • ODA服务器计算节点本地硬盘状态异常的处理
  • [架构之美]Windows系统安装MySQL 8.0详细图文教程(十八)
  • [手写系列]Go手写db — — 完整教程
  • Linux `uptime` 指令详解与系统监控指南
  • One Data理论
  • Docker Desktop安装在其他盘
  • 材料创新与工艺升级——猎板PCB引领高频阻抗板制造革命
  • 第3.2.3节 Android动态调用链路的获取
  • vue vite 无法热更新问题
  • 北京导游资格证备考单选题题库及答案【2025年】
  • 【RT-Thread Studio】W25Q128配置
  • 【字符函数和字符串函数】
  • Cadence 高速系统设计流程及工具使用三
  • NX949NX952美光科技闪存NX961NX964
  • C++——继承
  • 华为云Git使用与GitCode操作指南
  • Windows报错:OSError: [WinError 1455] 页面文件太小,无法完成操作的问题
  • C. scanf 函数基础
  • Linux系统入门第十二章 --Shell编程之正则表达式
  • 重庆荣昌区委区政府再设“答谢宴”,邀请800余名志愿者机关食堂用餐
  • 当创业热土遇上年轻气息,上海南汇新城发展如何再发力?
  • 印巴开始互袭军事目标,专家:冲突“螺旋式升级”后果或不可控
  • 马上评|比余华与史铁生的友情更动人的是什么
  • 中方对中美就关税谈判的立场发生变化?外交部:中方立场没有任何改变
  • 山东滕州一车辆撞向公交站台撞倒多人,肇事者被控制,案件已移交刑警