【SSH】在局域网或非局域网下 Windows10 配置 SSH 连接 Linux 服务器
开启 ssh 服务只需开启一次,之后开机自启查看 ssh 进程是否存在是否存在3 客户端配置(Windows10)3.1 安装 OpenSSH打开设置,选择应用>应用和功能,然后选择可选功能扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择添加功能选择生成密钥的路径,可以按来接受默认值系统会提示你使用密码来加密你的私钥文件(这个密码要记住)大概内容如下:以上配置完成后,在终端
【SSH】在局域网或非局域网下 Windows10 配置 SSH 连接 Linux 服务器
1 环境介绍
- 服务端(被连接方):
Ubuntu20.04 - 客户端(连接方):
Windows10、VSCode
2 服务端配置(Ubuntu20.04)
- 安装 OpenSSH
sudo apt install openssh-server openssh-client
- 开启 ssh 服务
sudo systemctl enable ssh
- 查看 ssh 服务状态
sudo systemctl status ssh

3 客户端配置(Windows10)
官方文档:Link
3.1 安装 OpenSSH
-
打开设置,选择系统>可选功能
-
扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择添加功能
- 查找OpenSSH 客户端,点击安装
- 查找OpenSSH 服务器,点击安装
- 安装完成后,查看已安装功能中是否有 OpenSSH 客户端 和 OpenSSH 服务器

在 Windows 终端中可执行的命令

- 启动 OpenSSH SSH Server(Optional)
当 Windows10 作为被连接方时,才需要启动 SSH Server
win + r,输入services.msc打开服务- 双击 OpenSSH SSH Server

- 启动类型选择自动,服务状态选择启动,点击确定

3.2 生成密钥
- 打开终端输入
若不加
-t参数,默认为rsa
ssh-keygen -t ed25519 -C "your_email@example.com"
- 选择生成密钥的路径,可以按
Enter来接受默认值 - 系统会提示你使用密码来加密你的私钥文件(这个密码要记住)
可以为空,但不建议这样做。 将密码与密钥文件一起使用来提供双因素身份验证。

- 生成
id_ed25519和id_ed25519.pub两个文件

3.3 VSCode 配置
- 安装 Remote - SSH 插件

- 加入远程服务器

- 配置
config文件
大概内容如下:
Host: 自定义名称HostName: 服务端 ip 地址或域名User服务端用户名Port: 端口号(如果是22,则不需要配置)
以上配置完成后,在终端执行 ssh Host,比如: ssh intel,即可连接。
-
开启连接

-
左下角可以看到已连接的标志,点击 open folder 可以访问服务端的文件系统

4 部署公钥(免密登录)
- 确保存在
.ssh文件夹
# 可用于执行单个命令
ssh -p xxx HOSTNAME@ip mkdir ~/.ssh
- Windows Terminal 中执行
scp -P xxx C:\Users\USERNAME\.ssh\id_ed25519.pub HOSTNAME@IP:~
ssh -p xxx HOSTNAME@IP
cat ~/id_ed25519.pub >> ~/.ssh/authorized_keys
rm ~/id_ed25519.pub
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
如果完成了 3.3 小节中的 .ssh/config 文件配置 ,则同样可以用 HOST 代替 HOSTNAME@IP,比如: scp -P xxx C:\Users\USERNAME\.ssh\id_ed25519.pub intel:~。
可以借助这个命令来传输一些文件,若传输文件夹,则加 -r 参数。
# 从本机到另一台电脑传输
scp -P xxx windows文件 HOSTNAME@IP:linux路径
# 从另一台电脑到本机传输
scp -P xxx HOSTNAME@IP:linux文件 windows路径
- 验证
ssh -p xxx HOSTNAME@IP
若不需要输入密码,即完成配置。
5 .ssh 文件夹中各个文件的作用
参考文章: Link
| 文件名 | 功能 |
|---|---|
id_xxx |
经过 xxx 算法生成的私钥 |
id_xxx.pub |
经过 xxx 算法生成的公钥 |
authorized_keys |
存放需要免密登录的客户端公钥,实现免密连接 |
known_hosts |
记录访问过的计算机的公钥 |
config |
可以不用输入 HOSTNAME@ip,用其中的 Host 名代替 |
6 非局域网内使用 ssh
6.1 服务端(Ubuntu)配置
- 查询硬件架构
arch
# output
# x86_64
uname -a
# output
# Linux localhost.localdomain 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
-
下载花生壳

-
安装
cd ~/下载
# 自己在官网复制
wget "https://down.oray.com/hsk/linux/phddns_5.2.0_amd64.deb" -O phddns_5.2.0_amd64.deb
sudo apt install phddns_5.2.0_amd64.deb
# 若存在依赖相关错误,则执行下面的命令
sudo apt install -f
下载完成后,会有如下输出(左下角的
SN码有用):
也可以通过phddns status命令查询

- 登录花生壳管理平台(上图中的地址信息)
第一次登录需要激活认证
- 配置内网穿透
-
领取免费映射

-
新增映射

-
填写内网主机地址(即真实的
ip地址)和端口(ssh默认使用端口号22)
-
诊断,查看是否连接成功

6.2 客户端(Windows)配置
可以直接使用
ssh命令进行连接
ssh -p xxx HOSTNAME@外网域名
简单配置一下免密连接
- 传输公匙给服务端
scp -P xxx C:\Users\USERNAME\.ssh\id_ed25519.pub HOSTNAME@外网域名:~
ssh -p xxx HOSTNAME@外网域名
cat ~/id_ed25519.pub >> ~/.ssh/authorized_keys
rm ~/id_ed25519.pub
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
不想用命令也可以手动复制。
- 配置
config文件
Host: 自定义名称HostName: 可以是ip地址,也可以是域名Port: 端口号

- 连接测试
使用
ssh命令连接
ssh -p xxx orb_out
使用
VSCode连接

更多推荐

所有评论(0)