一、引子:
什么是ssh:ssh是Secure Shell(安全外壳协议)的缩写,建立在应用层和传输层基础上的安全协议。为了便于访问github,要生成ssh公钥,这样就不用每一次访问github都要输入用户名和密码。
二、操作步骤
1. windows安装 SSH
我们是使用 SSH 连接远程服务器,因此 Windows 需要支持 SSH,
使用 Win + R ,输入 cmd 打开控制窗口,输入ssh
如下提示,则代表 SSH 已经安装成功:
2. 安装插件
我们这里使用VScode安装Remote - SSH 插件:
3. 配置windows的SSH密钥
将本机添加到远程服务器连接白名单,让服务器知道是已认证的电脑在连接
1、使用如下命令,在本机生成 SSH 公钥文件。如果已经生成,则可直接使用,跳到步骤二
ssh-keygen
2、一般生成的密钥文件,路径为:C:\Users\.ssh ,找到公钥文件 id_rsa.pub ,复制到远程服务器 根目录 的 .ssh 文件夹中。如下
根目录,不一定非要是 /.ssh 路径,可以是自己的用户目录
注意:要确认远程服务器是否支持 SSH
windows差不多配置ok了
下面就是配置Ubuntu:
以VM为例,确保连通外网
1.安装ssh服务
1.升级apt-get
这里升级是为了避免安装包不是最新的而报错(根据个人情况更新
$ sudo apt-get update # 更新源$ sudo apt-get upgrade# 更新已安装包
安装ssh服务器、ssh客户端
这一步很重要
$ sudo apt install openssh-server# 安装ssh服务器$ sudo apt install openssh-client# 安装ssh客户机
2 下载vim
如果你和笔者一样是新装的Ubuntu,有vim-common版本,不过不是很好用
这里笔者删除这个版本,安装vim
$ sudo apt-get remove vim-common# 卸载vim-common版本$ sudo apt-get install vim# 下载最新版本的vim
3 关闭防火墙
这个是个人情况,笔者这边没有关闭也是可以用的
$ sudo ufw disable# 重启生效
4.配置ssh
配置ssh_config
去掉PasswordAuthentication yes前面的"#"号(这里笔者已经去掉了)
这里记得保存,:wq(打完输入这个就是保存并退出)
/etc/ssh/ssh_config
2.配置sshd_config
在PermitRootLogin prohibit-password这行行首加上"#"
在此行下面添加新一行:PermitRootLogin yes
$ sudo vi /etc/ssh/sshd_config
5 查看本机ip
一般新装的Ubuntu是没有ifconfig指令,所以我们要先安装net-tools
这里展示的是ifconfig -a的效果
$ sudo apt install net-tools# 安装最新版本的net-tools$ ifconfig -a# 远程ssh的ip
3 验证
使用ssh远程连接,这里我们用vscode的插件举例
user是指你Ubuntu的名字,ssh_ip就是上图你的ip
ssh @
这里笔者保存在C盘的用户目录下
之后左边会多个标签,点击在当前窗口连接
这里输入密码
这里就连接成功了
一.避坑
这里笔者在连接的时候出现了(过程试图写入的管道不存在),
这里笔者是权限的问题,把.ssh的权限添加自己的用户
找到.ssh文件夹。它通常位于C:\Users,例如C:\Users\name\
右键单击.ssh文件夹,然后单击“属性”
找到并点击“安全”标签
4.然后单击“高级”。 单击“禁用继承”,单击“确定”
将出现警告弹出窗口。单击“从此对象中删除所有继承的权限”
这里所有用户都将被删除,添加所有者的权限
6.接下来,单击“添加”以显示“选择用户或组”窗口
7.单击“高级”,然后单击“立即查找”按钮。应显示用户结果列表。 选择您的用户帐户
8.然后单击“确定”(大约三次)以关闭所有窗口
完成操作后,再次关闭并打开VSCode 并尝试连接到远程SSH主机
这里方法转载自:解决VS code报错,过程试图写入的管道不存在
第一次写文,如有侵权请联系,会第一时间删除
来源地址:https://blog.csdn.net/m0_53864737/article/details/129784329