ssh远程连接windows
由于奇怪的需求需要部署一台windows服务器,记录一下部署的过程
1安装Windows OpenSSH
首先通过powershell安装OpenSSH的服务端
在开始图标
上点击右键,选择Windows PowerShell(管理员)(A)
在powershell中输入:
# 安装OpenSSH客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0#安装OpenSSH服务端
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
在powershell中输入:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
若返回为:
Name : OpenSSH.Client~~~~0.0.1.0
State : InstalledName : OpenSSH.Server~~~~0.0.1.0
State : Installed
则表示安装成功,若返回为:
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresentName : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
表示安装失败,再来一遍吧,注意全程需要管理员权限。
2启动SSH服务器
依然是以管理员身份打开PowerShell,然后运行以下命令来启动 sshd service
# 启动sshd服务
Start-Service sshd# 将sshd服务设置为自动启动,若不设置需要在每次重启后重新开启sshd
Set-Service -Name sshd -StartupType 'Automatic'# 确认防火墙规则,一般在安装时会配置好
Get-NetFirewallRule -Name *ssh*# 若安装时未添加防火墙规则"OpenSSH-Server-In-TCP",则通过以下命令添加
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
3开启密钥登录
这一步是重中之重,加强安全,减少麻烦!!!
生成密钥的方法都是一样的,可以自行搜索,与linux不同的地方在于权限管理和默认authorized_keys存放位置。
公钥 (~\.ssh\id_rsa.pub) 的内容需放置在服务器上的一个名为authorized_keys
的文本文件中,该文件位于 C:\Users\username\.ssh\。 OpenSSH 客户端包括了 scp 来帮助实现此目的,这是一个安全的文件传输实用工具。
将本地的公钥部署到服务器上
# 确保服务器上存在.ssh 文件夹,若不存在则使用下面命令创建
ssh username@ip mkdir C:\Users\username\.ssh\#通过scp将本地的公钥上传到服务器上并重命名为authorized_keys,注意此方法会覆盖原有authorized_keys
scp C:\Users\username\.ssh\id_rsa.pub user1@ip:C:\Users\username\.ssh\authorized_keys
通过上述方法会覆盖原有authorized_keys文件,若要添加多个公钥,则通过记事本(更推荐使用vscode等文本编辑器)打开authorized_keys,把另起一行并把新公钥粘贴到authorized_keys文件中。
以下是windows中特有的操作
更改authorized_keys文件权限,不更改则无法通过密钥登录
# 远程通过ACL更改文件权限
ssh --% user1@ip icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
在服务器端则可以通过以下命令修改,注意需要管理员权限。
#在服务器端修改authorized_keys文件权限
icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
在Windows OpenSSH中,默认的授权密钥存放位置为ProgramData\ssh\administrators_authorized_keys,此位置对应为管理用户权限。因此需要修改默认授权文件位置。通过文本编辑器(推荐vscode)打开ProgramData\ssh\sshd_config,修改以下条目
#允许公钥授权访问,确保条目不被注释
PubkeyAuthentication yes#授权文件存放位置,确保条目不被注释
AuthorizedKeysFile .ssh/authorized_keys#可选,关闭密码登录,提高安全性
PasswordAuthentication no#注释掉默认授权文件位置,确保以下条目被注释
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
注意修改sshd_config需要管理员权限,修改完成后保存并推出。
在PowerShell(管理员)中重启sshd服务
#重启sshd,需要管理员权限
Restart-Service sshd
至此可以尽情享受windows服务器带来的各种不便了!enjoy!!!
最后附赠如何使用PowerShell卸载Windows OpenSSH
# 卸载 OpenSSH 客户端
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0# 卸载 OpenSSH 服务端
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
ssh远程连接windows相关推荐
- 二、Linux SSH远程连接Windows
1.关闭防火墙 2.允许远程访问 3.安装SSH服务器并启动 4.打开Linux查看防火墙状态,未关闭则用system stop firwall暂时关闭防火墙 5.测试网络连通性,不通则检查网卡,保证 ...
- SSH 远程连接原理及故障排错详解
1.SSH 远程连接介绍 最常用的 Linux 提供远程连接服务的工具就是 SSH 软件,SSH 分为 SSH 客户端和 SSH 服务端两部分.其中,SSH服务端包含的软件程序主要有 openssl ...
- 远程连接Kali Linux使用PuTTY实现SSH远程连接
远程连接Kali Linux使用PuTTY实现SSH远程连接 本书主要以在Android设备上安装的Kali Linux操作系统为主,介绍基于Bash Shell渗透测试.由于在默认情况下,在Andr ...
- python如何连接自己电脑服务器_Python远程连接windows服务器并上传数据
[芝麻IP代理]大数据时代下,我们对于Python的应用真的是淋漓尽致,第一次玩服务器,电脑端远程连接能连上,可SSH却始终不行,后来才发现,这根本不是一种东西,SSH得在服务器上搭建SSH seve ...
- 使用 Powershell 远程连接 windows server
使用 Powershell 远程连接 windows server Intro 最近我们的开发环境增加了一个 windows 服务器,没有界面的,不能直接远程桌面连上去管理,需要使用 Powershe ...
- 如何使用 SSH 控制连接 Windows 服务器
服务器远程连接/ssh方式连接教程(windows云主机远程登录) 如何使用 SSH 控制连接 Windows 服务器
- ssh远程连接服务器
文章目录 第三章 远程连接服务器 1.1 远程连接服务器简介 1.2 连接加密技术简介 1.3 ssh远程连接服务简介 1.4 sftp用法介绍 1.5 实验 作业: 第一题:两台机器:第一台机器作为 ...
- SSH远程连接服务(五)
文章目录 1. 端口号 2. ssh与telnet区别 3. telnet服务 4. ssh相关命令 4.1 ssh命令 4.2 scp远程拷贝命令 4.3 rz和sftp 5. 在Linux中ssh ...
- 介绍3种ssh远程连接的方式
摘要:SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器. ...
- PUTTY-0.75 下载安装及SSH远程连接方法
目录 一.下载教程 1.进入putty官网 2.点击Download it here 3.选择安装模式 二.安装教程 1.打开安装包 2.产品功能设置 三.SSH远程连接方法 1.Linux Serv ...
最新文章
- 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java
- Intent 匹配规则
- 服务器会自动创建cookie,网站的cookie机制是什么
- 前端学习(3151):react-hello-react之DoM的diff算法
- REVERSE-COMPETITION-HGAME2022-Week2
- html列表滑动字母索引,js实现做通讯录的索引滑动显示效果和滑动显示锚点效果...
- SpringBoot2 整合 CXF 服务端和客户端
- Java并发同步器AQS(AbstractQueuedSynchronizer)学习笔记(2)
- 使用sun misc Unsafe及反射对内存进行内省 introspection
- JS获取元素的第一个子节点
- CentOS 7使用通过二进制包安装MySQL 5.7.18
- 【数学建模】【lingo】lingo的基本操作
- 在哪儿比较好下载建筑学西方近现代的外文文献?
- 动作识别-Regularization on Spatio-Temporally Smoothed Feature for Action Recognition-CVPR2020
- 服务器如何设置内网IP地址
- PAT甲级准备方法(附2021年PAT甲级秋季考试题解)
- ping服务器时显示的ttl是什么意思,运行PING本机IP的时候显示TTL=64是什么意思啊?这个数值? 爱问知识人...
- Windows xp IIS 信息服务
- M - Make Cents?
- Python concurrent.future 使用教程及源码初剖
热门文章
- 第三章: 微信小程序底部导航栏的实现(详细)
- python esp8266 ssd1306_micropython esp8266+ssd1306(OLED) 显示中文(示例)
- 安全龙网络安全攻防实验1.2 全新功能正式上线
- tp5调用阿里云短信接口
- Java医院网上预约挂号系统源码
- 金蝶K3 各种单据及各种控制功能表的关系
- MySQL批量插入(使用mybatis实现mysql数据库的批量插入操作)
- soundpool android,Android SoundPool:再次播放停止的声音
- 利用JS代码完成动态生成表格案例及解析
- 三菱PLC源型漏型输入输出