异地组网+SSH实现

Tailscale实现异地组网+SSH远程连接

1. Tailscale简介

Tailscale 是一个基于WireGuard的VPN软件,可以实现内网穿透,组网,远程连接等功能。 它的优点是简单易用,不需要配置复杂的路由器, 只需要在每台设备上安装Tailscale客户端, 就可以实现内网穿透,组网,远程连接等功能,使用起来十分简单方便。

2. Tailscale安装

客户端安装

登录Tailscale官网,注册账号,然后下载对应的客户端,安装即可。

安装完成后,打开Tailscale客户端,登录账号,然后登录控制台,就可以看到已经连接的设备了。 在控制台上,可以看到每台设备的IP地址,这些IP地址都是在同一个局域网内的,可以直接通过这些IP地址进行内网穿透,组网,远程连接等操作。

检查网络是否正常

从某台设备上ping另一台设备的IP地址,如果ping通,说明网络正常。

服务器sshd安装

服务器上安装sshd服务,然后启动sshd服务,这样就可以通过ssh远程连接服务器了。

sudo apt install openssh-server
sudo systemctl start sshd

客户端ssh连接服务器

在客户端上,通过ssh连接服务器

ssh username@server_ip
#username是服务器上的用户名,server_ip是服务器的IP地址, 如果是默认端口,可以不用指定端口号。

VSCode Remote SSH

在VSCode中,安装Remote SSH插件,然后通过Remote SSH插件,连接服务器,就可以在本地编辑服务器上的文件了。

安装以下插件

Remote - SSH Remote - SSH: Editing Configuration Files Remote - SSH: Explorer

在VSCode中,按下F1,输入Remote SSH,选择Remote-SSH: Open Configuration File,然后选择config文件,编辑config文件,添加以下内容

Host server
    HostName server_ip
    User username

免密登录

以下操作,以客户端和服务端都为Windows为例,Linux和MacOS类似。

客户端生成密钥

在客户端上,打开PowerShell,输入以下命令,生成密钥

ssh-keygen
服务端添加密钥

拷贝客户端生成的公钥到服务端的.ssh目录下,在authorized_keys文件中追加粘贴。(如果没有authorized_keys文件,可以新建一个)

然后编辑sshd_config文件,添加以下配置

PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
PasswordAuthentication no  (需要将默认的yes改为no,很重要)

注释掉以下配置

 #Match Group administrators
       #AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

重启sshd服务

net stop sshd
net start sshd
客户端免密登录

编辑客户端的.ssh目录下的config文件,添加IdentityFile配置,内容为客户端的私钥路径。

Host server
    HostName server_ip
    User username
    IdentityFile C:\Users\username\.ssh\id_rsa

Git保存用户名密码

在客户端上,打开PowerShell,输入以下命令,保存用户名密码(需要输入过一次用户名密码)

git config --global credential.helper store 
Licensed under CC BY-NC-SA 4.0
Last updated on Mar 23, 2024 06:11 UTC
让过去的过去,给时间点时间
Built with Hugo
Theme Stack designed by Jimmy