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

一、 生成SSH密钥对

bash 复制代码
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.可尝试执行如下命令

bash 复制代码
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账户可以把对应账户放前面即可。之后连接服务器即可。

七、参考文章:

bash 复制代码
1.配置visual studio code 用秘钥远程连接SSH服务器:https://blog.csdn.net/liang_baikai/article/details/137152136

2.配置vscode 远程开发+ 免密登录:https://zhuanlan.zhihu.com/p/222452460

3.【VSCode】远程开发配置密钥连接 :https://www.cnblogs.com/servlet-context/p/18148623


补充:

bash 复制代码
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私钥是 需要 重命名 去 管理的)。
相关推荐
洛兮银儿15 小时前
VScode注释快捷键的修改
ide·vscode·编辑器
如若12321 小时前
Ubuntu 无 sudo 安装花生壳并实现 SSH 内网穿透:Conda 环境部署、冲突排查与自动启动
linux·运维·ubuntu·ssh·内网穿透
优信电子21 小时前
Raspberry Pi Pico(RP2040)快速入门:Arduino IDE环境搭建与第一个程序
ide
小肝一下21 小时前
多态(上)
android·开发语言·c++·vscode·多态·面向对象·伊蕾娜
2501_915921432 天前
iOS开发环境搭建详解 Xcode 配置与快蝎轻量级工具选择
ide·vscode·macos·ios·个人开发·xcode·敏捷流程
wardenlzr2 天前
VSCode 运行 Live Server 提示「Windows 找不到文件 Chrome」问题全解析
chrome·windows·vscode
程序员more2 天前
我用 AI,20 分钟做了一个 VSCode 股票摸鱼插件
人工智能·vscode
减瓦2 天前
告别Postman——用VSCode优雅地发起Http请求
vscode·http·postman
芳草萋萋鹦鹉洲哦2 天前
【git】重新生成并添加 SSH Key(Mac)
git·macos·ssh
午安~婉2 天前
git中http与ssh连接
git·http·ssh