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 对应行
相关推荐
linyanRPA24 分钟前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
会Tk矩阵群控的小木38 分钟前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发
佛山个人技术开发1 小时前
GitCode SSH连接配置教程
运维·ssh·gitcode
MartinYeung51 小时前
[论文学习]隐私保护联邦特徵选择与差分隐私的的工程实践框架
学习
qeen872 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
上海云盾-小余2 小时前
接口高频恶意刷取怎么防?网关限流搭配 WAF 联合防护方案
网络·安全
潜创微科技2 小时前
4K60 over IP 方案简介
网络·嵌入式硬件·网络协议·tcp/ip·音视频
treesforest2 小时前
自媒体账号限流排查指南:从风控算法视角看IP纯净度与网络隔离
网络·tcp/ip·ip·媒体
pride.li2 小时前
海思视觉Hi3516CV610--开机自动设置ip
linux·网络·网络协议·tcp/ip
OpsEye2 小时前
系统负载高一定是CPU问题吗?
运维·cpu·it