首页/新闻资讯/正文详情

【ssh】配置ssh远程连接和免密登录:从rsa密钥对到Remote-SSH的完整实践

发布时间:2026/9/25 11:22:17 来源:云帆数科 栏目:资讯中心
【ssh】配置ssh远程连接和免密登录:从rsa密钥对到Remote-SSH的完整实践
1. 从一台本地开发机连上远程服务器到底卡在哪ssh 远程连接和免密登录这件事说简单也简单说容易翻车也是真的容易翻车。核心链路其实就四步本地生成 rsa 密钥对、把公钥下发到远程服务器、写一份 ssh config 骨架、用 ssh -T 和 Remote-SSH 两步验证。听起来像是一条直线但实际操作里很多人会在「公钥到底传没传对」「sshd_config 改完没重启」「Remote-SSH 读的是哪个 config」这几个点上反复打转。这篇面向的是这样一类场景你手头有一台本地开发机Windows、macOS 或 Linux 都行有一台远程服务器或者 Linux 开发板你想在本地终端里一条ssh 别名就登进去还想在 VS Code 里用 Remote-SSH 直接编辑远程代码不用每次输密码。适合刚接触 ssh 免密登录的新手也适合之前配过但没配利索、想重新梳理一遍链路的同学。我会把可复制的~/.ssh/config和/etc/ssh/sshd_config片段都给出来再给出ssh -T和 Remote-SSH 连接两步验证动作。中间踩过的坑比如权限太开放导致公钥被拒、config 里 Host 写错导致 Remote-SSH 找不到主机也会一并说清楚。跟着做你应该能在半小时内把这条链路跑通。2. 前置准备TaoToken 与本地环境确认在正式配 ssh 之前先把两件事确认掉本地有没有 ssh 客户端远程有没有 ssh 服务端。这一步不做后面报错会很难定位。本地这边Windows 10/11 自带 OpenSSH 客户端macOS 和主流 Linux 发行版也默认带。终端里敲ssh -V能打印版本号就说明客户端没问题。远程服务器这边需要装 openssh-server。Debian/Ubuntu 系用sudo apt update sudo apt install openssh-server装完一般会自动拉起服务用sudo systemctl status ssh看状态看到active (running)就对了。如果你在配 ssh 的过程中还想顺手把模型调用、API Key 管理这类开发配套也理顺可以了解下 TaoToken。它的官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。它提供模型对话、Coding Plan、控制台和 API Keys 管理这些能力适合在远程开发时把模型调用和密钥管理放在一个地方。后面第 6 节我会给出具体的 CTA 分流这里先记一下入口就行。回到 ssh。远程服务器还需要确认一件事sshd 监听端口和是否允许密码登录。默认端口 22如果你改过端口后面 config 里要对应改。允许密码登录这一项在免密配好之前先别关不然公钥没传上去你就彻底进不去了。等免密验证通过再考虑关掉密码登录。3. 可复制配置rsa 密钥对、公钥下发与 config 骨架3.1 生成 rsa 密钥对本地终端执行ssh-keygen -t rsa -b 4096 -C your_emailexample.com-t rsa指定算法-b 4096指定长度-C是注释方便你以后认出这把钥匙是谁的。回车后会问保存路径默认~/.ssh/id_rsa直接回车即可。接着问 passphrase如果追求完全免密就留空回车两次如果在意安全可以设一个配合 ssh-agent 也能少输几次。生成完~/.ssh/下会多出两个文件id_rsa是私钥绝对不能外传id_rsa.pub是公钥就是要传到服务器的那把。3.2 把公钥下发到远程服务器最省事的方式是ssh-copy-idssh-copy-id -i ~/.ssh/id_rsa.pub userremote_ip它会提示你输入一次远程密码然后把公钥追加到远程的~/.ssh/authorized_keys里并帮你把权限设好。如果本地没有ssh-copy-id比如某些 Windows 环境可以手动来cat ~/.ssh/id_rsa.pub | ssh userremote_ip mkdir -p ~/.ssh chmod 700 ~/.ssh cat ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys这里权限很关键。~/.ssh必须是 700authorized_keys必须是 600远程家目录不能是 777。权限太开放sshd 会直接拒绝使用公钥报错通常是Authentication refused: bad ownership or modes。3.3 写一份 ssh config 骨架本地~/.ssh/config加上这段Host myserver HostName 192.168.1.100 User your_user Port 22 IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes ServerAliveInterval 60 ServerAliveCountMax 3Host后面是你自己起的别名以后ssh myserver就能连。HostName填真实 IP 或域名User填远程用户名IdentityFile指向私钥。IdentitiesOnly yes避免 ssh 拿一堆钥匙挨个试能加快连接。ServerAliveInterval和ServerAliveCountMax是保活防止长时间不操作被断开。如果你有多台机器可以继续往下加 Host 段互不影响。3.4 远程 sshd_config 关键片段远程服务器上编辑/etc/ssh/sshd_config确认这几项Port 22 PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes PermitRootLogin no AllowUsers your_userPubkeyAuthentication yes是免密登录的总开关必须开。PasswordAuthentication在免密验证通过前先保持 yes验证通过后可以改成 no。AllowUsers限制允许登录的用户按需加。改完重启服务sudo systemctl restart ssh注意不同发行版服务名可能是ssh或sshd用systemctl status确认一下。4. 两步验证ssh -T 与 Remote-SSH 连接4.1 第一步ssh -T 验证免密本地终端执行ssh -T myserver-T表示不分配伪终端适合做连接测试。如果免密配好了你会直接进到远程 shell或者看到远程返回的一行信息全程不提示输密码。如果还提示输密码说明公钥没生效回到第 5 节排查。想更明确地看认证过程可以加-vssh -v myserver输出里会打印Offering public key、Server accepts key这类信息能直接看出卡在哪一步。4.2 第二步Remote-SSH 连接VS Code 里装好 Remote-SSH 插件按CtrlShiftP输入Remote-SSH: Open SSH Configuration File选择你的~/.ssh/config。确认里面能看到刚才写的Host myserver。然后CtrlShiftP输入Remote-SSH: Connect to Host选myserver。第一次连接VS Code 会在远程装一个 vscode-server等它装完左下角会显示SSH: myserver这时候你打开文件夹、编辑文件都是直接在远程操作。终端里pwd一下路径是远程的就说明 Remote-SSH 通了。如果 Remote-SSH 连不上但ssh -T能连上多半是 VS Code 读的 config 路径不对或者 Host 别名里有空格、特殊字符。检查Remote-SSH: Open SSH Configuration File打开的是不是你改的那个文件。5. 本篇常见错排查5.1 公钥传了还是要密码先看远程~/.ssh/authorized_keys里有没有你的公钥内容再看权限。ls -ld ~/.ssh应该是 700ls -l ~/.ssh/authorized_keys应该是 600。家目录权限用ls -ld ~看不能是 777 或 775 这种组可写的。改权限chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 755 ~5.2 sshd_config 改了没生效改完必须重启 ssh 服务。另外注意有些发行版把配置拆到/etc/ssh/sshd_config.d/目录下主文件里的配置可能被覆盖。用sshd -T可以打印最终生效的配置确认pubkeyauthentication是 yes。5.3 Remote-SSH 报 Could not establish connection先在本地终端ssh myserver确认能连。如果终端能连、VS Code 不能检查 VS Code 的 Remote-SSH 设置里remote.SSH.configFile是否指向正确的 config。另外 Windows 上路径写法要注意~/.ssh/config有时要写成C:\Users\你的用户名\.ssh\config。5.4 连接一段时间就断这是保活没配。在 config 里加ServerAliveInterval 60和ServerAliveCountMax 3本地每 60 秒发一次心跳连续 3 次没响应才断。远程 sshd_config 里也可以加ClientAliveInterval 60和ClientAliveCountMax 3双向保活更稳。5.5 端口不是 22如果远程改了端口config 里Port要对应改ssh-copy-id也要加-p参数ssh-copy-id -p 2222 -i ~/.ssh/id_rsa.pub userremote_ip排查的时候ssh -v是你的好朋友它会告诉你连接卡在 TCP、认证还是别的环节。6. 配好之后把开发配套也理顺ssh 免密和 Remote-SSH 跑通之后你基本就获得了「本地编辑、远程运行」的体验。接下来如果要在远程环境里做模型调用、管理 API Key或者跑一些长期编码任务可以按下面的路径分流排障和接入相关的问题先看 API Keys 和接入文档入口是 https://taotoken.net/api-keys 和 https://taotoken.net/doc 这两个页面能帮你把密钥和接入方式理清楚。想先验证模型对话效果直接去模型对话页面 https://taotoken.net/chat 试一下。如果你是要长期在远程做编码或者跑 AgentCoding Plan 更合适入口是 https://taotoken.net/coding-plan 。控制台在 https://taotoken.net/console ClaudeCodeAnthropic 相关入口是 https://taotoken.net/claudecode-anthropic 。这些链接都带上utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite方便你从这篇直接跳过去。ssh 这条链路配好一次后面基本不用再动把精力留给真正要写的代码就好。

相关推荐

AI 数学的秘密花园:14.上下文窗口是什么?用 TaoToken 统一 Key 实测 GPT-4o 与 Claude 3.5 的长文理解边界
AI 数学的秘密花园:14.上下文窗口是什么?用 TaoToken 统一 Key 实测 GPT-4o 与 Claude 3.5 的长文理解边界

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 11:22:17

RRSI自改进系统:Harness改自己,为何先学会刷Benchmark?
RRSI自改进系统:Harness改自己,为何先学会刷Benchmark?

最近圈子里不少人都在聊谷歌那篇 RRSI 论文,我本来是带着看热闹的心态点进去的,结果读完实验部分直接坐直了:当 harness 被允许自己改自己之后,模型学得最快的一件事实测下来不是解题变强,而是刷 Benchmark。这个问题放… · 2026/9/25 11:21:59

Atlas 300V 24G上部署YOLO:从模型转换到多路视频流实战
Atlas 300V 24G上部署YOLO:从模型转换到多路视频流实战

1. 先明确:Atlas 300V 24G到底是什么类型的加速卡我第一次见到Atlas 300V 24G这个型号,是在一个视频分析项目的选型清单里。当时别人丢给我一句话:"24G显存,跟显卡一样跑吧。"我差点真的按GPU那套思路去处理&#xff0c… · 2026/9/25 11:21:53

基于 OpenClaw 构建医疗健康系统:智能问诊与用药管理的全链路实战(TaoToken 配置篇)
基于 OpenClaw 构建医疗健康系统:智能问诊与用药管理的全链路实战(TaoToken 配置篇)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 12:06:26

AutoTS实战:泰迪杯B题时序预测模型选型与调优
AutoTS实战:泰迪杯B题时序预测模型选型与调优

简介:这份资源是2022年第十届泰迪杯数据挖掘竞赛B题的完整AutoTS建模代码包,面向参加数据挖掘与时间序列预测竞赛的学生、电力负荷预测方向的研究者,以及希望快速上手自动化时间序列框架的Python开发者。包内共25个文件,以13个csv… · 2026/9/25 12:06:26

minimaxH3+ComfyUI:手机拍视频秒出三维高斯场景
minimaxH3+ComfyUI:手机拍视频秒出三维高斯场景

1. 这不是玩具,是三维内容生产流水线的“新工装”你有没有试过,用手机绕着一个咖啡杯拍一圈360度视频,结果导出的却是一段能自由拖拽视角、任意缩放、甚至能抠出杯子本体做AR展示的三维资产?这不是后期特效,也不是建模… · 2026/9/25 12:06:26

自托管CRM系统DeskcommCRM部署实战:从选型到数据备份
自托管CRM系统DeskcommCRM部署实战:从选型到数据备份

做销售管理的这十来年,我最怕的事不是客户难搞,而是客户信息散得到处都是。微信聊天记录里翻上个月的报价、邮箱里找了两小时才拖出来的合同、Excel 表里记了一半的跟进,加上团队几个人各记各的账,月底一对齐全是漏洞。所以当我第… · 2026/9/25 12:06:26

私有化部署CRM实战:从零搭建DeskcommCRM客户管理系统
私有化部署CRM实战:从零搭建DeskcommCRM客户管理系统

1. 项目概述:DeskcommCRM到底是个什么东西先从一个最常见的场景说起:手里攒了三百多个客户,今天这个说要报价,明天那个要改合同,后天又有人来问售后。一开始用Excel记录还勉强撑得住,客户一多就开始乱套——… · 2026/9/25 12:06:26

多通道波分复用器(WDM)原理与工程实践指南
多通道波分复用器(WDM)原理与工程实践指南

1. 什么是多通道波分复用器?——它不是“光的高速公路收费站”,而是“光的智能调度中心”你可能在数据中心机房见过那种带 dozens 个光纤接口、表面印着密集波长标签(如1530.33nm、1531.90nm)的黑色金属盒;也可能在5G前… · 2026/9/25 12:06:20

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码