admin 管理员组文章数量: 887021
【SSH】在局域网或非局域网下 Windows10 配置 SSH 连接 Linux 服务器
- 1 环境介绍
- 2 服务端配置(Ubuntu20.04)
- 3 客户端配置(Windows10)
- 3.1 安装 OpenSSH
- 3.2 生成密钥
- 3.3 VSCode 配置
- 4 部署公钥(免密登录)
- 5 .ssh 文件夹中各个文件的作用
- 6 非局域网内使用 ssh
- 6.1 服务端(Ubuntu)配置
- 6.2 客户端(Windows)配置
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
- 选择生成密钥的路径,可以按
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/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
连接
版权声明:本文标题:【SSH】在局域网或非局域网下 Windows10 配置 SSH 连接 Linux 服务器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1715985037h660971.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论