[玩转系统] PowerShell SSH 客户端和远程处理说明
作者:精品下载站 日期:2024-12-14 03:40:59 浏览:15 分类:玩电脑
PowerShell SSH 客户端和远程处理说明
您需要管理远程服务器或网络设备吗?那么您可能正在使用 SSH 来连接和管理它们。 SSH 协议允许您通过不安全的网络(互联网)安全地连接到远程设备。要使用 SSH,大多数人都会使用 SSH 客户端工具,例如 Putty。但您是否知道PowerShell 有一个内置的 SSH 客户端?
Windows 10 1809 及更高版本中默认启用 PowerShell SSH 客户端。这意味着您现在可以轻松地从您最喜欢的命令行工具连接到任何远程设备。
我们还可以在 PowerShell 中使用 SSH 远程管理另一台 Windows 计算机,但您需要使用 PowerShell 6 或更高版本来运行 SSH 服务器。
PowerShell SSH 客户端
在 PowerShell 中使用 SSH 最常见的方法是作为 SSH 客户端。假设您使 Windows 保持最新状态,则默认情况下应该启用 SSH。您只需打开 PowerShell 并键入以下命令即可检查它:
# type ssh and press enter
ssh
# Result:
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-J [user@]host[:port]] [-L address]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q query_option] [-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] destination [command]
打开 PowerShell 后,您可以使用单个命令连接到远程服务器或网络设备:
ssh <username>@<host_ip_address>
# For example:
ssh [email protected]
您还可以使用主机名而不是 IP 地址。如果您不提供用户名,则将使用您的本地用户帐户。
当您按 Enter 键时,您将需要输入 SSH 用户的密码。当您第一次连接到设备时,您将需要接受主机的密钥。只需按 Enter 或输入 yes 即可。
如果 SSH 在默认端口 22 之外的其他端口上运行,则可以使用 -P
标志更改端口号:
ssh <username>@<host_ip_address> -P <port_number>
# For example
ssh [email protected] -P 1022
PowerShell SSH 注册机
某些远程服务器或服务仅允许使用 SSH 密钥进行 SSH 访问。您需要生成本地 SSH 密钥并将密钥上传到服务器(或服务),以便它可以验证您并创建安全连接。
SSH 密钥存在于私钥和公钥中。您需要将私钥保存在本地计算机上(并确保您自己保管),并将公钥上传到服务器。
PowerShell 有一个内置的 SSH 密钥生成器,您可以使用它来生成新密钥。键入以下命令来生成密钥:
ssh-keygen -t Ed25519
# Result
Generating public/private Ed25519 key pair.
Enter file in which to save the key (C:\Users\a-d/.ssh/id_ed25519): <press enter>
# It will ask for apassphrase, you can leave it empty - see below for more details
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
# Generated key
Your identification has been saved in C:\Users\a-d/.ssh/id_ed25519.
Your public key has been saved in C:\Users\a-d/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:1232131+ASdi123SscvBbwn9Qfxj0 a-d@lab01
The key's randomart image is:
+--[ED25519 256]--+
| .o . |
|..o+ . |
|o..o . o |
|+..# o . |
|=.+ =...S. |
|.+.C.+. + E |
|. *o@OO O. . |
| = O*o . |
|. +++. |
+----[SHA256]-----+
选项 -t Ed25519 是用于创建密钥的较新算法。在旧系统上,这可能不受支持。然后您可以使用旧的 RSA 加密系统。
ssh-keygen -b 4096 -t RSA
密钥存储在您的用户配置文件中。路径显示在输出中,但通常它们保存在以下位置:
%userprofile%\.ssh
SSH 注册机密码
在创建 ssh 密钥期间,系统会要求您输入密码或将其留空(默认)。密码用于加密本地密钥。这样您就可以安全地存储本地密钥。如果任何人获得了密钥,那么如果没有密码短语,他们就无法使用它。
但在使用密码之前,您需要记住一件重要的事情。每次使用 SSH 密钥时都需要输入密码。大多数时候 SSH 密钥用于自动化,例如 GitHub 服务。在这些用例中,不能选择使用密码。
使用 SSH 的 PowerShell 远程连接
我们还可以在PowerShell中使用SSH来建立与另一台计算机或服务器的远程连接。这可以在 Windows 计算机或 Windows-Linux 之间进行,反之亦然。
使用 WinRM 已经可以在两台 Windows 计算机之间创建 PowerShell 远程会话。但您现在还可以使用 SSH 创建连接。 SSH 的优点是您可以在 Windows、Linux 和 macOS 上使用它。
您将需要 PowerShell 6 或更高版本才能使用 SSH 在 Windows 和 Linux 计算机之间进行远程连接。我在下面的示例中使用 PowerShell 7。
安装 OpenSSH 服务器
第一步是在 Windows 计算机上安装 OpenSSH 服务器。如前所述,SSH 客户端现已默认安装并启用。但 SSH 服务器不是。
您可以使用以下 cmdlet 检查是否安装了 OpenSSH 服务器:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
# Result:
Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
正如您所看到的,OpenSSH 服务器不存在。我们可以使用 PowerShell 安装/启用它:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
下一步是启动 OpenSSH 服务器。因为它是一个我们可以设置为自动启动的服务:
# Start the sshd service
Start-Service sshd
# Set the service to automatic start
Set-Service sshd -StartupType Automatic
配置 SSH 服务器
我们需要编辑 SSHD 配置文件,以便可以使用密码进行身份验证并在远程计算机上使用 PowerShell。
如果我们不配置 SSH 服务器,那么我们只能在远程计算机上使用基本命令(Windows Shell 提示符)。
为了充分使用所有 PowerShell cmdlet,我们需要配置 SSH 服务器以将 PowerShell 添加为子系统。
SSHD 配置文件存储在programdata 文件夹中。因为我们已经打开了 PowerShell,所以我们将使用它来打开配置文件:
# Change the directory to the programdata folder> ssh
cd $env:ProgramData\ssh
# Open the configuration file in notepad
PS C:\ProgramData\ssh> notepad .\sshd_config
在配置文件中,删除 PasswordAuthentication yes 行之前的 #,并在配置文件中添加以下行。 (位置并不重要,但我在“# override default of no Subsystems”部分下面添加了)
Subsystem powershell c:/progra~1/powershell/7/pwsh.exe -sshs -NoLogo -NoProfile
重新启动 SSHD 服务以加载新的配置文件:
Restart-service sshd
使用 PowerShell 进行 SSH 远程处理
在服务器上安装 SSH 服务器后,我们现在可以在客户端上使用 PowerShell 连接到它。我们可以使用与 WinRM 远程处理相同的 cmdlet,区别在于主机名与计算机名称。
- 新 PS 会话
- 输入-PSSession
- 调用命令
如果您使用New-PSSession -Computername
,则将使用 WinRM 协议。当您使用参数 -hostname
时,将使用 SSH。
您可以按如下方式启动新的 PowerShell 远程处理会话:
# Directly open a remoting session
Enter-PSSession -HostName la-srv-lab01 -UserName admin
# Create a new session
$session = New-PSSession -HostName la-srv-lab01 -UserName admin
# Invoke a command on the remote machine
Invoke-Command -Session $session -ScriptBlock {Get-Process -Name "Explorer"}
# Result:
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName PSComputerName
------ ----- ----- ------ -- -- ----------- -------------
517 49,78 122,99 24,83 3532 1 explorer la-srv-lab01
另请注意,我们使用参数 -Username
而不是 WinRM 方法中的 -Credentials
。
我们可以使用 Invoke-Command cmdlet 运行远程 PowerShell 命令,或者使用 Enter-PSSession 在服务器上打开 PowerShell。
管理多个 SSH 连接
Putty 等工具的优点是您可以管理和保存 SSH 连接。这使您可以轻松地重新连接到您经常使用的服务器或网络设备。
使用 Windows Terminal,您可以实现同样的目标。新的 Windows 终端允许您轻松存储不同的连接并使用不同的命令行界面。
如果您想了解有关 Winows 终端的更多信息,请务必阅读这篇文章,我在其中解释了有关这个功能强大的终端的所有详细信息。
总结
将 SSH 与 PowerShell 结合使用确实非常方便,并且无需额外的工具(SSH 客户端)。就我个人而言,我经常使用 PowerShell,因此当我需要在服务器上检查或执行某些操作时,从 PowerShell 窗口快速连接到它非常容易。
我希望这篇文章对您有用,如果您有任何疑问,请在下面发表评论。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag