SSH配置

一、先判断你电脑有没有 SSH

在 Windows 的 PowerShell 或 CMD 输入:

复制代码
ssh -V

如果能显示类似:

复制代码
OpenSSH_for_Windows_x.x

说明已经安装好了,可以直接用。

Windows 10 1809 以后和 Windows Server 2019 以后,OpenSSH 已作为 Windows 的可选功能提供;微软官方建议通过"可选功能"或 PowerShell 安装 OpenSSH Client / Server。(Microsoft Learn)


二、Windows 安装 SSH 客户端

方法 1:图形界面安装

路径:

复制代码
设置 → 应用 → 可选功能 → 添加可选功能 → 搜索 OpenSSH Client → 安装

安装后重新打开 PowerShell,输入:

复制代码
ssh -V

方法 2:PowerShell 安装

用管理员身份打开 PowerShell,先检查状态:

复制代码
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

如果 OpenSSH Client 没有安装,执行:

复制代码
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

如果你想让这台 Windows 电脑也能被别人 SSH 连接,再安装服务端:

复制代码
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

这些是微软官方给出的 Windows OpenSSH 安装命令。(Microsoft Learn)


三、Linux 服务器安装 SSH 服务端

如果你的远程服务器是 Ubuntu/Debian:

复制代码
sudo apt update
sudo apt install openssh-server -y

启动 SSH 服务:

复制代码
sudo systemctl start ssh
sudo systemctl enable ssh

查看状态:

复制代码
sudo systemctl status ssh

Ubuntu 官方文档说明,OpenSSH Server 的主要配置文件是:

复制代码
/etc/ssh/sshd_config

也可以使用:

复制代码
/etc/ssh/sshd_config.d/

放置模块化配置。(Ubuntu)


四、macOS 安装和开启 SSH

macOS 一般自带 SSH 客户端,直接在终端输入:

复制代码
ssh -V

如果想让别人 SSH 连接你的 Mac:

复制代码
系统设置 → 通用 → 共享 → 远程登录

Apple 官方文档说明,开启"远程登录"后,系统会显示用于登录这台 Mac 的 SSH 命令。(苹果支持)


五、SSH 基本连接命令

最基础格式:

复制代码
ssh 用户名@服务器IP

例如:

复制代码
ssh root@192.168.1.100

如果服务器 SSH 端口不是默认的 22,比如是 60000:

复制代码
ssh -p 60000 用户名@服务器IP或域名

例如:

复制代码
ssh -p 60000 wang@192.168.1.100

六、使用密钥登录 SSH

1. 在本机生成密钥

Windows / Linux / macOS 都可以用:

复制代码
ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可。默认会生成:

复制代码
私钥:~/.ssh/id_ed25519
公钥:~/.ssh/id_ed25519.pub

私钥不能发给别人。
公钥可以放到服务器上。


2. 把公钥放到服务器

Linux/macOS 可以用:

复制代码
ssh-copy-id -p 60000 用户名@服务器IP或域名

Windows 没有 ssh-copy-id 时,可以手动操作:

先查看公钥:

复制代码
type $env:USERPROFILE\.ssh\id_ed25519.pub

复制输出内容,然后登录服务器,把它追加到:

复制代码
~/.ssh/authorized_keys

服务器上执行:

复制代码
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys

粘贴公钥后保存,然后设置权限:

复制代码
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3. 用私钥连接服务器

复制代码
ssh -i 私钥路径 -p 端口 用户名@服务器IP或域名

七、配置 SSH 免输长命令

Windows 的 SSH 配置文件通常在:

复制代码
C:\Users\你的用户名\.ssh\config

Linux/macOS 在:

复制代码
~/.ssh/config

例如你可以写:

复制代码
Host my4090
    HostName 192.168.1.100
    User wang
    Port 60000
    IdentityFile C:\Users\dell\.ssh\4090_key.txt

以后连接只需要:

复制代码
ssh my4090

八、常用 SSH 配置项

客户端 config 示例

复制代码
Host server1
    HostName 192.168.1.100
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Host my4090
    HostName 192.168.1.100
    User wang
    Port 60000
    IdentityFile C:\Users\dell\.ssh\4090_key.txt
    ServerAliveInterval 60
    ServerAliveCountMax 3

含义:

复制代码
Host:连接别名
HostName:服务器 IP 或域名
User:用户名
Port:端口
IdentityFile:私钥路径
ServerAliveInterval:每隔多少秒发一次保活包
ServerAliveCountMax:连续几次无响应后断开

九、配置 SSH 服务端

Linux 服务器配置文件:

复制代码
sudo nano /etc/ssh/sshd_config

常见配置:

复制代码
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

含义:

复制代码
Port 22:SSH 端口
PermitRootLogin no:禁止 root 直接登录
PasswordAuthentication no:禁止密码登录,只允许密钥登录
PubkeyAuthentication yes:允许公钥登录

修改后重启 SSH:

复制代码
sudo systemctl restart ssh

建议先开一个旧 SSH 窗口不要关,再开新窗口测试,防止配置错了把自己锁在服务器外面。


十、完整流程

假设你要连接服务器:

复制代码
服务器地址:192.168.1.100
端口:60000
用户名:wang
私钥:C:\Users\dell\.ssh\4090_key.txt

1. 创建配置文件

打开:

复制代码
C:\Users\dell\.ssh\config

写入:

复制代码
Host my4090
    HostName 192.168.1.100
    User wang
    Port 60000
    IdentityFile C:\Users\dell\.ssh\4090_key.txt
    ServerAliveInterval 60

2. 连接服务器

复制代码
ssh gpu4090

或者不用配置文件,直接连接:

复制代码
ssh -i 私钥路径 -p 端口 用户名@服务器地址

十一、常见报错解释

报错 原因 解决
Connection timed out IP/端口不通、防火墙拦截、服务器没开 SSH 检查端口、防火墙、服务状态
Connection refused 服务器能访问,但 SSH 服务没监听该端口 检查 sshd 是否启动
Permission denied (publickey) 密钥不对、公钥没放服务器、用户名错 检查私钥、公钥、用户名
Identity file not accessible 私钥路径写错 用绝对路径
Bad owner or permissions Windows .ssh/config 或私钥权限不安全 icacls 修权限
Host key verification failed 服务器指纹变化 谨慎删除 known_hosts 对应行
相关推荐
仙柒4154 小时前
Docker原理
运维·docker·容器
哼?~7 小时前
NAT、代理服务、内网穿透
网络
fake_ss1987 小时前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
Upsy-Daisy8 小时前
AI Agent 项目学习笔记(二):Spring AI 与 ChatClient 主链路解析
人工智能·笔记·学习
米高梅狮子8 小时前
第2章 docker容器
运维·docker·云原生·容器·架构·kubernetes·自动化
闵孚龙9 小时前
Claude Code Ultraplan 远程多代理规划全解析:AI Agent、CCR远程容器、异步规划、状态机、计划传送与企业级自动化治理
运维·人工智能·自动化
C+++Python9 小时前
C++ 进阶学习完整指南
java·c++·学习
上海云盾-小余10 小时前
内网边界安全管控:访问权限隔离与入侵阻断方案
网络·安全·web安全
南京码讯光电技术有限公司10 小时前
工业无线AP选型指南:从WiFi 5到WiFi 6+5G CPE,如何构建全覆盖、零漫游、高可靠的智能工厂网络?
服务器·网络·5g
sulikey11 小时前
个人Linux操作系统学习笔记2 - gcc与库的理解
linux·笔记·学习·操作系统·gcc·