Windows 配置远程免密 SSH 登录多个 Linux 主机

Windows机器通过ssh免密连接Linux windows机器通过ssh免密连接linux服务器 阅读详情

1. 前言

日常运维或开发中,经常需要从 Windows 电脑通过 SSH 登录多台 Linux 服务器。每次输入密码既繁琐又容易出错,配置 SSH 密钥免密登录后,一条 ssh 别名 即可直达目标主机,配合 ~/.ssh/config 还能为每台机器设置独立别名、端口、用户和密钥。

本文从零开始,完整演示在 Windows 上生成密钥、分发公钥、配置多主机别名,以及常见问题排查。

2. 环境与前置条件

  • 客户端:Windows 10 / Windows 11(自带 OpenSSH Client)
  • 服务端:任意主流 Linux 发行版(CentOS、Ubuntu、Debian 等),已开启 SSH 服务
  • 网络:Windows 能通过 IP 或域名访问 Linux 的 22 端口(或自定义端口)

先确认 Windows 已安装 OpenSSH 客户端。打开 PowerShell:

ssh -V

若输出类似 OpenSSH_for_Windows_9.5p1 则说明已安装。若提示找不到命令,用管理员权限的 PowerShell 安装:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

3. 在 Windows 上生成 SSH 密钥对

使用 ssh-keygen 生成密钥对,推荐 ed25519 算法(更短更安全),也可用 RSA:

# 推荐:ed25519
ssh-keygen -t ed25519 -C "windows-pc"

# 兼容老系统:RSA 4096
ssh-keygen -t rsa -b 4096 -C "windows-pc"

执行过程中会提示保存路径,直接回车使用默认路径:

C:\Users\<你的用户名>\.ssh\id_ed25519

随后提示设置 passphrase(密钥口令),可直接回车留空实现完全免密;若设置了口令,可通过 ssh-agent 缓存避免每次输入。

生成完成后目录结构如下:

C:\Users\<用户名>\.ssh\
├── id_ed25519        # 私钥,务必保密
└── id_ed25519.pub    # 公钥,分发给服务器

4. 将公钥分发到多台 Linux 主机

4.1 方式一:ssh-copy-id(推荐,需 Linux 侧支持)

Windows 自带的 OpenSSH 通常不带 ssh-copy-id,可在 PowerShell 中用一行命令替代:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@192.168.1.10 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

对每台主机重复执行,只需替换 IP 和用户名:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@192.168.1.11 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@192.168.1.12 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

4.2 方式二:手动复制

  1. 用记事本打开 C:\Users\<用户名>\.ssh\id_ed25519.pub,复制全部内容;
  2. 登录目标 Linux,执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

4.3 方式三:批量分发脚本

主机较多时,写一个 PowerShell 脚本循环处理:

$hosts = @(
    @{ Ip = "192.168.1.10"; User = "root" },
    @{ Ip = "192.168.1.11"; User = "root" },
    @{ Ip = "192.168.1.12"; User = "root" }
)
$pubKey = Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"

foreach ($h in $hosts) {
    Write-Host "分发公钥到 $($h.User)@$($h.Ip) ..."
    $cmd = "mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo '$pubKey' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
    ssh "$($h.User)@$($h.Ip)" $cmd
}

5. 配置多主机别名(~/.ssh/config)

在 C:\Users\<用户名>\.ssh\ 下新建文件 config(无扩展名),内容示例:

# 全局默认
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3
    TCPKeepAlive yes

# 主机一:Web 服务器
Host web1
    HostName 192.168.1.10
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519

# 主机二:数据库服务器
Host db1
    HostName 192.168.1.11
    User dba
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

# 主机三:测试环境
Host test1
    HostName 192.168.1.12
    User deploy
    Port 22
    IdentityFile ~/.ssh/id_ed25519

配置完成后即可用别名登录:

ssh web1
ssh db1
ssh test1

注意:Windows 下 IdentityFile 建议写 ~/.ssh/id_ed25519,OpenSSH 会自动展开为用户目录;若使用绝对路径,注意反斜杠需转义或改用正斜杠。

6. 使用 ssh-agent 管理带口令的密钥

如果生成密钥时设置了 passphrase,可通过 Windows 的 ssh-agent 服务缓存密钥,实现一次输入、长期免密。

以管理员身份打开 PowerShell:

# 设置 ssh-agent 服务为自动启动并启动
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent

# 添加私钥(会提示输入一次 passphrase)
ssh-add $env:USERPROFILE\.ssh\id_ed25519

# 查看已加载的密钥
ssh-add -l

之后登录任意主机都不再提示输入口令。

7. 验证与常见问题排查

7.1 验证免密登录

ssh -v web1

-v 会输出详细握手过程,看到 Authentication succeeded (publickey) 即表示免密成功。

7.2 常见问题

现象可能原因解决办法
仍提示输入密码公钥未写入或权限不对检查 ~/.ssh/authorized_keys 内容与权限 600
Permission denied (publickey)服务端禁用了公钥认证修改 /etc/ssh/sshd_config 中 PubkeyAuthentication yes 并重启 sshd
Bad owner or permissionsWindows 上私钥/配置文件权限过宽右键文件 → 属性 → 安全,仅保留当前用户
连接超时防火墙或端口不通检查 firewall-cmd/ufw 及云服务器安全组
登录后立即断开服务端 AllowUsers 限制在 sshd_config 中加入对应用户

服务端关键配置参考:

# /etc/ssh/sshd_config
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no   # 确认免密可用后再关闭密码登录

修改后重启服务:

sudo systemctl restart sshd

8. 安全建议

  • 私钥文件 id_ed25519 绝不外传,不要提交到 Git 仓库;
  • 生产环境建议为不同用途生成不同密钥,并在 config 中按主机指定 IdentityFile;
  • 确认免密登录可用后,再关闭服务端密码登录,降低暴力破解风险;
  • 定期轮换密钥,离职或设备更换时及时从各主机 authorized_keys 中移除旧公钥;
  • 可结合 Fail2ban、限制登录 IP 等手段进一步加固。
  • 每个不同的主机可以生成不同的密钥,密钥存放不同的文件,在config文件引用

9. 总结

整体流程可以概括为:生成密钥 → 分发公钥 → 配置别名 → 验证登录。

Windows 生成密钥对

分发公钥到各 Linux 主机

编写 ~/.ssh/config 多主机别名

ssh-agent 缓存口令(可选)

ssh 别名 验证免密登录

关闭密码登录并加固

配置完成后,多台 Linux 主机只需 ssh web1、ssh db1 这样一条命令即可登录,日常运维效率显著提升。

ssh密钥登录远程主机配置 1.什么是公钥&amp;私钥 public key(公钥)存放在欲登录的服务器上,而private key(私钥)为特定的客户机所持有。 当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过public key加密的随机数据给客户机,这个数据只能通过private key解密,客户机将解密后的信息发还... 阅读详情

相关推荐

【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥

目录 LINUX SSH免密登录 即看即用 详细说明 免密登录原理 Secure Shell 免密认证登录 linux 生成密钥 windows 生成密钥 目录 LINUX SSH免密登录 即看即用 详细说明 免密登录原理 Secure Shell 免密认证登录 linux 生成密钥 windows 生成密钥 LINU...

小鱼菜鸟的博客 1811

【Cursor/Vscode】SSH免密登录:把本地密钥与远程配置一次理顺

Cursor/Vscode SSH免密登录总失败?先跑 ssh-keygen 生成密钥对,再把公钥写入远程 authorized_keys 并执行 chmod 700/600 修正权限,最后在 config 中用 IdentityFile 与 IdentitiesOnly 锁定私钥。配合 TaoToken 统一管理 API Key 凭据,避免散落多机,官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 。

weixin_34471637的博客 5

Linux 中实现 ssh 免密登录

Linux 中实现 ssh 免密登录 1. 使用命令行 在控制端使用命令生成私钥密钥对,执行命令 ssh-keygen -t rsa ,一路默认回车即可,然后会在 .ssh/ 目录下生成两个文件 id_rsa 和 id_rsa.pub,如下图。 使用命令 ssh-copy-id root@192.168.16.4(或者使用 ssh-copy-id -i ~/.ssh/id_rsa.pub...

苦逼小码农的博客 5152

【VSCode】配置免密SSH登录远程服务器

基本配置流程,以及汇总自己踩过的坑

潜水应届社畜 7449

Windows 下 Gitee 免密连接与 SSH 密钥配置实战

本文详细介绍了在Windows系统下配置Gitee的SSH免密连接与密钥生成方法,帮助开发者提升代码推送效率。通过生成ED25519密钥对、绑定Gitee公钥及本地仓库配置等步骤,实现安全高效的Git操作,特别适合高频推送的个人项目。

weixin_34378767的博客 465

STM32控制气泵和电磁阀实现

2、mos管的选型:mos管选择主要注意两个参数即可,一是导通的电流,二是耐压值,并且常用NMOS管,根据要求,气泵和电磁阀供电电压为12V,所以选择的mos管耐压值要大于12V,这里选用耐压值为30V的MOS管,并且导通电流为5.8A,如下图。1、气泵和电磁阀的开和关均为开关量,实现控制方法有多种,比如继电器,但是继电器动作有噪声且体积较大,更好的方法为使用mos管。使用STM32控制气泵和电磁阀的开和关,气泵和电磁阀的供电电压为12V。最终实现单片机控制气泵和电磁阀的开和关。

jacklood的博客 1万+

VSCode配置 SSH连接远程服务器+免密连接教程

​ 以下内容基本参考博客VSCode配置 SSH连接远程服务器+免密连接教程 - 知乎,内容全面细致,基本上都能一次性成功连接远程服务器,如果不想每次连接服务器时都要输入密码,可以多花几分钟配置以下免密连接(连接好之后非常的方便) 为什么使用vscode? 研究生计算机开发研究python语言使用得多一点,而有界面的码代码并且可以连接远程服务器的平台常用的有两个:pycharm和vscode。个人喜欢并推荐使用vscode,因为比较轻量级,而且插件很多,操作上也比较简单,比较方便。 ​

qq_50714222的博客 6598

嵌入式定点PID控制器:mrm-pid极简实现与实时控制实践

PID控制器是自动控制领域的基础算法,其核心在于比例、积分、微分三环节的协同调节。在资源受限的嵌入式系统中,传统浮点PID易受时序抖动、内存分配不确定性及FPU依赖影响,难以满足毫秒级确定性响应需求。定点PID通过整数运算替代浮点计算,显著提升执行周期稳定性与跨平台兼容性,成为电机控制、传感器补偿等实时场景的关键技术路径。mrm-pid库以位置式结构、int32_t增益参数、int64_t积分累加器和无动态内存设计,实现了超低开销(12–28 CPU周期)与完全可审计的闭环内核,天然适配Cortex-M系列

weixin_31659095的博客 570

ssh安装,配置以及免密连接

ssh安装,配置以及免密连接,配置就是主要是起别名,window和linux同理,ssh这一篇就够了

weixin_74292291的博客 4061

VS2015+C++实战:手把手教你用海康MVS里的Demo搞定多相机同步采图与保存

本文详细解析了在VS2015+C++环境下,利用海康威视MVS工业相机SDK实现多相机同步采图与保存的全流程。从环境准备、SDK选择到多相机初始化、同步采图方案,再到异常处理与性能优化,提供了实战技巧和代码示例,帮助开发者快速掌握工业相机二次开发的核心技术。

weixin_29170327的博客 280

稀疏阵列选型指南:互质阵、嵌套阵、MRA,谁才是你项目里的‘性价比之王’?

本文深入探讨了稀疏阵列技术中的互质阵、嵌套阵和MRA三大架构的工程化选型策略,重点分析了它们在DOA估计、自由度、旁瓣抑制和计算复杂度等核心指标上的表现。通过实际案例和配置示例,为智能天线、声学定位和毫米波雷达等应用场景提供技术选型指南,帮助研发团队在硬件成本与性能之间找到最佳平衡点。

weixin_42525005的博客 488

windows本机vscode通过ssh免密登录远程linux服务器 && git push/pull 免密

本文详细介绍了如何在VS Code中配置SSH免密登录远程Linux服务器的方法。首先需满足本地安装VS Code和SSH客户端的条件,然后通过ssh-keygen生成密钥对(推荐ed25519算法),将公钥上传至服务器。文章提供了自动(ssh-copy-id)和手动两种公钥上传方式,并强调正确的文件权限设置(.ssh目录700权限,authorized_keys文件600权限)。最后指导安装VS Code的Remote-SSH插件,配置SSH连接文件,实现免密登录。文中还包含常见问题排查,如登录失败。

Ape's IT Blog 1662

环保 HJ212协议解析

由于是做环保相关的,有时需要对212协议进行拆包和解包。HJ212协议是一种字符串协议,数据传输通讯包主要由包头、数据段长度、数据段、CRC校验、包尾组成,其中“数据段”内容包括请求编码、系统编码、命令编码、密码、设备唯一标识、总包数、包号、指令参数。请求编码为请求的时间戳,系统编码ST统一规定为22,命令编码CN为该数据包的时间类型,访问密码、设备唯一标识在对接时由平台提供,指令参数为数据内容。通讯协议的数据结构如图4所示。 图4 通讯协议的数据结构 6.1.1通讯包结构组成 名称 类型 长度

ccf19881030的专栏 2万+

windows:使用windows或者Linux免密登陆、免密上传文件远程linux

有时候需要把Windows中的文件传给Linux, 或者把Linux中的文件传给Windows, 用Xftp就可以传输, 但是某天发现Xftp不能用了, 或者没有安装Xftp的话,在命令窗口中使用scp命令传输文件也是一个不错的选择 在Windows中上传文件到Linux 在文件所在目录下shift + 右键打开powershell窗口, 输入命令 相对路径 scp .\backup-platform.zip root@192.168.1.6:/opt/ 绝对路径 scp E:\Scp_file\bac.

OceanStar的博客 3052

API深度集成——OpenClaw与第三方服务无缝对接(2026实战版)

本文介绍了OpenClaw系统与第三方服务的API深度集成技术,重点阐述了RESTful API的实现方案。通过一个功能完善的REST客户端类(RestClient)展示了核心功能:支持请求重试、拦截器机制、错误处理和认证管理等;同时提供了API资源管理器(ApiResourceManager)简化资源操作。这些技术实现了OpenClaw与外部系统的稳定可靠对接,为开发者构建API集成方案提供了2026年的最佳实践。

博客 1215

智能车图像处理19-进阶篇11--斜入十字补线

这篇文章主要讲述智能车竞赛中如何对于斜入十字进行补线操作。

taiyuezyh的博客 7480

vscode远程免密ssh原理与实操方法

SSH是一种加密协议,全称为Secure Shell,用于安全地远程登录到服务器或其他远程设备上执行命令或传输文件。它提供了一种安全的加密通信机制,使得远程登录和文件传输等操作不会被恶意攻击者窃取或篡改,确保了数据的保密性和完整性。SSH采用公钥密码学技术,能够有效地防止被中间人攻击或网络窃听。举例来说,如果我们要使用 Github 这种 git 代码托管平台的话,首先本地要生成一个 SSH和,然后将公钥填写到 Github 的 SSH Key 管理面板中。

mirana的专栏 1954

【机器学习-17】数据变换---小波变换特征提取及应用案列介绍

小波变换作为一种前沿的数据分析工具,近年来在信号分析领域崭露头角。小波分析的理论和方法凭借其独特优势,在信号处理、图像处理、语音处理、模式识别以及量子物理等多个领域得到了广泛的应用,堪称近年来在工具及方法上的重大突破。小波变换以其多分辨率的特性,在时域和频域均展现出对信号局部特征的强大表征能力。通过伸缩和平移等运算过程,小波变换能够对信号进行多尺度聚焦分析,为非平稳信号的时频分析提供了一种有效手段。它允许我们由粗及细地逐步观察信号,从而精准地提取出有用信息。

qq_38614074的博客 2万+

【5分钟学会免密ssh登录】这么多年你竟然还用密码登录Linux?免密SSH登录!

一种更安全、便捷的远程连接方式,适用于Linux服务器管理。相比传统的密码登录,更方便快捷

1632

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux主机SSH免密设置解析

为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录。但是很多时候为了操作方便,我们都通过设置SSH免密码登录。那么该如何设置?是不是免密码登录就不安全了呢?   一、被访问主机的秘钥存储机制 在被SSH登录的主机中,其实都有一个存储来登录的主机的秘钥的文件,它的名字叫做authorized_keys,它的位置就在root/下面的隐藏目录.ssh中(注:如果

取经路上 2586

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Windows配置ssh免密登录linux+VSCode Remote-SSH免密编写linux代码

文章目录安装必须软件开始配置证书配置vscode插件参考链接 安装必须软件 git.exe:提供linux基础命令,作为生成ssh证书提供基本条件 vscode:主角 开始配置证书 打开git Bash,可以看到如下界面 输入如下命令生成ssh证书(一直回车): ssh-keygen -t rsa 进入到目录/c/Users/zeng/.ssh/中拿到生成的证书id_rsa,用scp传给linux cd ~/.ssh scp -p ./id_rsa.pub fabric-node2@192.168

孤独的糖三角 1287

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux、Windows、Mac非root普通用户使用秘钥免密SSH登录

前言 一般买来的服务器都是给你root用户,但实际上安全隐患太大。比如我自己的服务器给实验室搭个跳板机内网穿透实验室的GPU服务器完成远程开发。但实现其需要秘钥免密登陆,如果新来的能直接免密登陆我服务器,手皮了一下把我服务器整崩了咋办,所以还是等开个非root普通用户给大家作跳板。 不同操作系统间免密访问原理都是一样的,A主机免密访问B主机,需要A主机生成的公钥添加到B主机的~/.ssh/authorized_keys文件中,这样A访问B,B拿到A的用户连接信息,然后去自己的authorized_key

虚拟-Worder的博客 2718

vs code 配置远程linux主机ssh免密登录

问题背景: 在开发或者做实验的过程中,我们经常会用到远程服务器或者Github的项目,而我服务器上的项目只能在Jupyter Notebook上编写(或许可以在其他IDE上写,但我不知道)。而我们喜欢用的IDE比如Pycharm、轻量级的VScode,如何在本地的IDE上使用服务器的项目且快速、方便地写代码呢?这就是今天要详细介绍的VScode配置免密ssh+remote,一旦连接成功,我们就可以在本地自己喜欢的IDE上操作远程服务器端的项目了。 环境准备: 1.Win10 2.VScode(VSC

一码算一码 920

Windows 免密远程连接 Linux 服务器:SSH 密钥认证完整教程

本文介绍了在Windows电脑上配置SSH免密码登录远程Linux服务器的方法。通过生成SSH密钥对(使用ssh-keygen命令)并将公钥上传至服务器(通过PowerShell一键部署或手动复制),可实现安全便捷的免密登录。配置完成后,用户可通过PowerShell、VSCode等工具直接连接服务器,无需重复输入密码。文章还提供了关闭服务器密码登录的安全建议,以及常见问题排查方法。整个过程包含密钥生成、公钥部署、连接测试三个主要步骤,适合开发运维人员提升工作效率和系统安全性。

m0_74205854的博客 1603

SSH访问Linux:登录过程解析、免密配置、sshfs远程挂载

一、SSH协议原理 1. SSH协议 2. SSH协议两种级别的验证方法 第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。 第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收

三禾工作室 3837
上一篇: Go 切片、映射常见使用场景
下一篇: 离线安装与使用 vscode Remote SSH插件
Chengdu.S
博客等级 码龄9年 282粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chengdu.S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值