1. 服务器端
1.1 安装OpensSSH
sudo apt install openssh-server
1.2 开启ssh服务
使用下面的命令查看是否开启了ssh:
service ssh status
或者
sudo systemctl status ssh
只要看到绿色高亮的active(running)就是开启了ssh
如果没有开启,则使用以下命令开启:
sudo systemctl enable --now ssh
1.3 允许ssh通过防火墙
一般防火墙默认是关闭的,可以用以下命令查看:
sudo ufw status
如果是不活动,就可以跳过了,否则就运行下面的命令允许ssh通过防火墙:
sudo ufw allow ssh
1.4 找到服务器的IP地址
运行以下命令:
ip a
然后跳出来一堆,找192开头就是你的IP地址,一般是:inet 192.168.xxx.xxx/xx brd 192.168.xxx.255,找准前面那个就是,也就是inet和brd夹着的那串
服务器端的配置到此就完成了
2. 自己的电脑端
2.1 VS code安装Remote-SSH插件
2.2 配置ssh
下面就会自动跳出来让你连接然后输入密码(服务器的密码),没有的话就点回这里:
连接,然后输入密码就可以了,左下角如图表示连接成功
接下来就可以打开服务器的文件了,注意是你打开服务器的文件或代码运行,
不是你打开自己电脑的代码能直接用服务器运行,
这里我一开始搞错了,我以为是直接打开自己电脑的文件,运行使用服务器的环境和硬件,然而并不是这样的,所以我感觉向日葵或者todesk这些远程软件也行啊,只是略卡。
3. 免密登录
3.1 自己的电脑端
进入C:\Users\XXX\.ssh文件夹,没有就直接新建
shift+鼠标右键 --> 在此处打开powershell窗口
ssh-keygen -t rsa
回车回车回车得到这个:
这时你会看到文件夹下生成了两个文件,id_rsa是私钥,id_rsa.pub是公钥,后面我们主要用它。
3.2 服务器端
直接打开终端,重复一遍:
ssh-keygen -t rsa
在/home/XXX/.ssh文件夹下同样生成公钥和私钥。这一步可能单纯为了创建.ssh文件夹,并没有用到生成的公钥和私钥文件,可以尝试手动创建.ssh文件夹和空白文件。
继续在当前文件夹下打开终端,输入以下命令创建一个文件authorized_keys:
touch authorized_keys
SSH免密登录:
把本地端的id_rsa.pub(公钥)内容复制到这个authorized_keys文件保存。
SFTP免密登录:
1.把本地端的id_rsa(私钥)内容覆盖服务器端id_rsa的保存。
2.本地端 D:\你的项目\.vscode\sftp.json 配置文件中,添加参数私钥的绝对地址:
"privateKeyPath": "c:/Users/XXX/.ssh/id_rsa",
如果SFTP还没有免密,本地端尝试以下操作:
C:\Users\XXX\.ssh\config文件增加IdentityFile参数,内容为私钥的绝对路径:
Host 192.168.1.32Hostname 192.168.1.32User yuanchenIdentityFile C:\Users\XXX\.ssh\id_rsaPort 22
D:\你的项目\.vscode\sftp.json文件增加sshConfigPath参数,内容为ssh配置文件的绝对路径
"sshConfigPath": "C:\Users\XXX\.ssh\config"