最近几天实验室服务器经常连接中断,每次中断后我要重新输入一遍密码,密码因为安全设置的也不短,每次熟真的很累。于是想起来之前师兄说可以设个密钥什么的,刚刚成功实践了下,记录一下。
目录
本次教程建立在VS Code+Remote-SSH插件开发环境。本地环境是Windows,远程环境是Linux的普通用户,非root。
第一步:本地生成公钥和密钥
打开C:\Users\你的用户名文件夹,中文Windows系统是C:\用户\你的用户名文件夹,如:C:\Users\xxx;
在上述目录找到.ssh文件夹,若不存在,新建一个;
在.ssh目录启动命令行,有两种方式:
方法一:打开cmd,切换到该文件夹下
方法二:在该文件夹空白处,按住shift键盘右击→在此处打开powershell窗口
输入:
ssh-keygen -t rsa
一直回车,如下图本地就成功了:
这时你会看到文件夹下生成了两个文件,id_rsa和id_rsa.pub,
id_rsa.pub便是公钥,后面我们主要用它。第二步:服务器
- 连接到你的远程服务器,如使用Xshell+Xftp或MobaXterm,同样地,找到home\用户名.ssh文件夹(没有的话使用命令mkdir .ssh新建);
- 若有.ssh文件夹,查看其中是否包含名为authorized_keys的文件,若无,使用touch authorized_keys命令创建;
- 打开上述authorized_keys文件,使用vim或gedit都可以,将本地Windows系统上我们创建的id_rsa.pub里面的内容拷贝到authorized_keys中保存即可。
PS:记得在Remote-ssh中配置远程服务器的信息,如下图
第三步(扩展):多台电脑连接服务器
因为我日常用台式机,但经常需要用笔记本开会,或者回家的时候肯定用不了台式机,因为需要两台电脑切换着使用。于是想两个电脑都免密登录。中间踩了坑不过还是解决了。
基本步骤和上面一样,本机电脑生成公钥私钥,将公钥复制到服务器authorized_keys文件下,注意是复制粘贴到最后,不是直接替换。最好换行再复制。这样等于服务器上多了一个你本地的公钥,同时也不影响之前别的设备的配置,达到多一个设备免密的效果。
不过到这里还不算完,我就是这样试了好多遍失败了,以为是复制粘贴换行原因,其实不是,主要是权限的问题。
在进行完上述操作后,最后还要设置一下权限。
chmod 700 .ssh
chmod 600 authorized_keys
此时应该多台电脑都可以免密访问服务器啦,可以愉快编程了。
关于权限的解释可以看下这篇文章
原文地址:https://blog.csdn.net/weixin_37734833/article/details/120654770
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。