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 对应行
相关推荐
IMPYLH2 小时前
Linux 的 sync 命令
linux·运维·服务器·python·bash·运维开发
三品吉他手会点灯2 小时前
C语言学习笔记 - 17.C编程预备计算机专业知识 - 数据类型
c语言·笔记·学习
lularible2 小时前
PTP协议精讲(3.8):硬件时间戳详解——纳秒级精度的魔法
网络·网络协议·开源·嵌入式·ptp
噜噜噜阿鲁~2 小时前
python学习笔记 | 7.4、高级特性-生成器
笔记·python·学习
handler012 小时前
【Linux 笔记】GDB 调试速查手册
linux·运维·c语言·c++·笔记
byoass2 小时前
文件版本管理的设计与实现:解决协同编辑丢数据的核心方案
前端·javascript·网络·数据库·安全·云计算
胡图图不糊涂^_^2 小时前
网络原理笔记
java·网络·笔记·学习·tcp/ip·http·https
上海云盾安全满满2 小时前
高防服务器与云防产品都适用哪些情况
运维·服务器
计算机安禾2 小时前
【Linux从入门到精通】第24篇:流程控制——if-else与case分支
linux·运维·chrome