SSH 远程登录全攻略:内网连接 NAS、连接连接云服务器(Ubuntu / Windows)
本文最后更新于 61 天前,如有失效请评论区留言。

一文掌握 SSH:密码登录 → 密钥免密;Ubuntu 与 Windows 双平台;内网 NAS、公网服务器通用;安全与排障全覆盖。

合规与安全提示

仅在你合法拥有或获授权的设备与账号上操作。为防止暴露管理入口,请使用强口令/密钥、限制来源 IP、启用防火墙与自动安全更新。

SSH 基础与内/外网区别

  • SSH 是什么? 安全的远程登录与执行协议,默认端口 22

  • 内网连接:同一局域网(如家用路由 192.168.x.x/10.x.x.x 网段)下,用目标设备的内网 IP / 主机名直连。

  • 公网连接:连接云服务器或对外暴露的主机,用公网 IP / 已解析的域名直连。

  • 关键名词

    • 用户名:远程系统的账户名(如 nickadmin)。

    • 主机:IP 或域名(如 192.168.50.10 / server.example.com)。

    • 端口:默认 22,如有变更,用 -p 指定。

在内网通过 SSH 连接(以 NAS 为例)

  • 获取 NAS 内网 IP:在路由器或 NAS 控制台查看(示例:192.168.50.10)。

  • 启用 SSH 服务(以群晖为例):DSM → 控制面板 → 终端机与 SNMP → 勾选 启用 SSH(默认端口 22,可自定义)。

  • 从同一局域网的电脑发起连接:参照后续章节中的 Ubuntu/Windows 命令。

提示:尽量给 NAS 设固定 IP或 DHCP 地址保留,避免 IP 变化导致连接失败。

连接公网服务器(ECS 等)

  • 确认公网 IP开放端口:在云平台安全组/防火墙中放行 22/TCP(或你的自定义端口)。

  • 初次登录:使用云平台分配的用户名(常见:root / ubuntu / ec2-user 等)与 IP/域名发起连接。

  • 安全建议:上线后尽快改端口、配置密钥免密、限制来源 IP、关闭密码登录。

Ubuntu:先用密码登录

# 基本格式
ssh 用户名@主机IP

# 示例:连接内网 NAS
ssh nick@192.168.50.10

# 自定义端口(如 2222)
ssh -p 2222 nick@192.168.50.10

# 公网服务器
ssh root@203.0.113.10
  • 首次连接会询问是否信任该主机指纹,输入 yes

  • 之后输入账户密码即可进入远程 Shell。

  • 常用:

    • 复制文件到远程:

scp local.txt nick@192.168.50.10:/home/nick/
    • 从远程取回文件:
scp nick@192.168.50.10:/home/nick/log.txt ./log.txt

Windows:先用密码登录

# 在 PowerShell 中使用,或者 win + r 输入cmd 进入命令行界面
ssh 用户名@主机

# 示例:连接内网 NAS
ssh nick@192.168.50.10

# 指定端口
ssh -p 2222 nick@192.168.50.10

# 公网服务器
ssh Administrator@203.0.113.10   # Windows Server 典型
ssh root@203.0.113.10             # Linux 典型
  • 首次连接同样需接受主机提示,随后输入密码。

  • 文件传输(scp)在 PowerShell 也可用,语法与 Linux 相同。

Ubuntu:配置密钥免密登录

生成密钥对

# 生成 Ed25519 密钥,-C 为注释(便于标识)
ssh-keygen -t ed25519 -C "nick@laptop"
# 默认保存在 ~/.ssh/id_ed25519 与 ~/.ssh/id_ed25519.pub
# 强烈建议为私钥设置 passphrase

安装公钥到目标主机

方式 A:ssh-copy-id(最省心)

ssh-copy-id -i ~/.ssh/id_ed25519.pub nick@192.168.50.10

方式 B:手动追加(pub文件)

# 将公钥内容追加到目标主机用户家目录的 authorized_keys, 路径一般为(换行添加一条记录)
/root/.ssh/authorized_keys

群晖注意:公钥路径为
/var/services/homes/<用户名>/.ssh/authorized_keys(权限:~/.ssh 700authorized_keys 600)。

对于一般用户而言,直接在路径/volume1/homes/<用户名>/.ssh/authorized_keys,即可配置。

配置 ~/.ssh/config(别名与默认项)

在ubantu系统内,在路径:~/.ssh/config, 填入以下内容(路径和密钥文件填写你自己的),

Host nas
HostName 192.168.50.10  # nas主机 
User nick  # 账户名
Port 22
IdentityFile ~/.ssh/id_ed25519

Host aliyun
HostName 203.0.113.10  # 公网服务器 
User root  # 账户名
Port 22
IdentityFile ~/.ssh/id_ed25519

Host prod
HostName server.example.com
User ubuntu  # 账户名
Port 22
IdentityFile ~/.ssh/id_ed25519

之后在ubantu的终端输入以下的命令即可ssh连接到对应主机:

ssh nas
ssh prod
ssh aliyun

Windows:配置密钥免密登录

生成密钥对

# 在 PowerShell 中生成 Ed25519
ssh-keygen -t ed25519 -C "nick@winpc"
# 默认保存到 C:\Users\<你的用户名>\.ssh\

安装公钥到目标主机

方式 A:scp 复制后手动追加

# 将公钥复制到远程的临时位置
scp $env:USERPROFILE\.ssh\id_ed25519.pub nick@192.168.50.10:/tmp/id.pub

# 在远程上追加(在 PowerShell 中执行时会进入交互输入密码)
ssh nick@192.168.50.10 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat /tmp/id.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm /tmp/id.pub"

方式 B:手动追加

# 将公钥内容追加到目标主机用户家目录的 authorized_keys, 路径一般为(换行添加一条记录)
/root/.ssh/authorized_key

配置 C:\Users\你的用户名\.ssh\config

生成密钥对

在windows系统内,在路径:C:\Users\你的用户名\.ssh\config, 填入以下内容(路径和密钥文件填写你自己的),

Host nas
HostName 192.168.50.10  # nas主机 
User nick  # 账户名
Port 22
IdentityFile ~/.ssh/id_ed25519

Host aliyun
HostName 203.0.113.10  # 公网服务器 
User root  # 账户名
Port 22
IdentityFile ~/.ssh/id_ed25519

Host prod
HostName server.example.com
User ubuntu  # 账户名
Port 22
IdentityFile ~/.ssh/id_ed25519

之后在windows的命令行界面(win + r 输入 cmd)输入以下的命令即可ssh连接到对应主机:

ssh nas
ssh prod
ssh aliyun

进阶与安全加固

  • 更改默认端口:在服务器的 sshd_config 中将 Port 22 改为高位端口(配合防火墙/安全组放行)。

  • 限制来源 IP:仅允许固定办公/家庭出口 IP 访问;或使用 VPN / Zero Trust。

  • 关闭密码登录:密钥验证稳定后,在 sshd_config 中设置 PasswordAuthentication no

  • 禁用 root 直登:改为普通用户 + sudo

  • 备份与轮换:定期更换密钥,吊销遗失设备的公钥。

通过服务器中转实现ssh登录到nas

这个功能需要nas端开启frpc,服务器端开启frps,开启方式参见 用 FRP 实现中转:阿里云 ECS 搭建 frps + NAS 作为 frpc(含安全组与 systemd)

在windows或者ubantu的相应config配置文件内(具体目录见前面),填入以下内容(路径和密钥文件填写你自己的):

Host nas_frp
HostName 203.0.113.10  # 公网服务器 
Port 16688  # 服务器开放的端口
User nick  # nas的用户名
IdentityFile ~/.ssh/id_rsa_host_nas_frp  # 相应的密钥文件应该放在nas的相应目录
IdentitiesOnly yes

之后在windows的命令行界面(win + r 输入 cmd)或者ubantu的终端输入以下的命令即可ssh连接到对应nas:

ssh nas_frp

主机指纹不匹配

假设你之前配置过该记录,现在更改了密钥,ssh连接时可能会出现报错,此时删除本地缓存即可,假设记录为nas_frp,那么删除命令为:

ssh-keygen -R 公网ip

之后再次执行ssh连接即可

常见问题排障(FAQ)

  • 卡在“连接超时/拒绝连接”:目标主机是否开启 SSH?端口是否开放(安全组/防火墙)?本地能否 ping 通?

  • 提示“Host key verification failed”:远程主机指纹变化(例如重装系统/换机);核实无异常后删除本地 ~/.ssh/known_hosts 中相应条目再连。

  • 输入密码总是失败:用户名是否正确?是否支持密码登录?是否被 Fail2ban/策略锁定?

  • 密钥免密失败:检查公钥是否追加到正确用户的 authorized_keys;权限是否正确;服务器是否允许 PubkeyAuthentication yes

  • 连接 NAS 不稳定:为 NAS 固定内网 IP;在交换机/路由器上开启 DHCP 保留;避免 Wi-Fi 质量波动。

  • 外网访问内网 NAS:建议基于 VPN/反向隧道(如 frp/Tailscale/ZeroTier),而非直接映射 22 端口到公网。

— 完 —
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇