在编写Powershell脚本时,有时会需要和Linux机器进行交互。所以这时就需要在Powershell中使用SSH。

本文将介绍如何在Powershell中安装SSH模块,以及如何使用ssh命令。

一 Posh-SSH模块

1 安装

在Windows中点击搜索,powershell_ise

在PowerShell_ise的环境中运行

PS C:\windows\system32> find-module *ssh*

Version    Name                                Repository           Description
------- ---- ---------- -----------
2.0.2 Posh-SSH PSGallery Provide SSH and SCP functionality for executing commands against remote hosts.
1.0.0 SSH PSGallery Provides a PowerShell-based SSH client based on SSH.net http://sshnet.codeplex.com/
1.9 SSHSessions PSGallery Svendsen Tech's SSH-Sessions module provides SSH session creation, management and int...
1.1.3 PowerSSH PSGallery This module detects the first use of an SSH command, automatically runs the SSH agent...
1.0 cEPRSSharepoint PSGallery DSCModule helps in installing & configuring the sharepoint site, Farm etc.,
1.0.4 PSShortcut PSGallery This module eases working with Windows shortcuts (LNK and URL) files.

如果没有find-module的命令,需要安装PackageManagement:

https://www.microsoft.com/en-us/download/details.aspx?id=51451

本文采用Posh-SSH的模块:

Install-Module Posh-SSH

可以通过下面的命令,查看安装的模块包含什么命令:

PS C:\Users\hengwei> get-command -Module posh-ssh
 
CommandType Name ModuleName
----------- ---- ----------
Function Get-PoshSSHModVersion posh-ssh
Function Get-SFTPChildItem posh-ssh
......

2 在PowerShell中使用SSH

可以用下面的脚本进行测试:

$username = "hengwei"
$password = "xxxx"
$secure = $password | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$secure)
 
New-SSHSession -ComputerName 40.125.173.212 -Credential $cred -AcceptKey
 
Invoke-SSHCommand -SessionId 0 -Command "cat /etc/redhat-release"
Invoke-SSHCommand -SessionId 0 -Command "df -k"
Host : 40.125.173.212
Output : {CentOS Linux release 7.3.1611 (Core) }
ExitStatus : 0
 
Host : 40.125.173.212
Output : {Filesystem 1K-blocks Used Available Use% Mounted on, /dev/sda2 30929148 1200340 29728808 4% /, devtmpfs 847688 0 847688 0% /dev, tmp
fs 858264 0 858264 0% /dev/shm...}
ExitStatus : 0

二 SSHSessions模块

1 安装

和Posh-SSH类似,安装采用install-module的方式:

Install-module SSHSessions

其命令比Posh-SSH要少,但都是SSH相关的:

PS C:\Users\hengwei> get-command -Module sshsessions
 
CommandType Name ModuleName
----------- ---- ----------
Function ConvertFrom-SecureToPlain SSHSessions
Function Enter-SshSession SSHSessions
Function Get-SshSession SSHSessions
Function Invoke-SshCommand SSHSessions
Function New-SshSession SSHSessions
Function Remove-SshSession SSHSessions

2 在PowerShell中使用SSH

New-SshSession -ComputerName 40.125.173.212 -Username hengwei -Password xxxx
 
PS C:\Users\hengwei> Get-SshSession
 
ComputerName Connected
------------ ---------
40.125.173.212

SSHSessions中有一个enter-sshsession的命令,可以直接进入交互式模式,进行一些交互的操作:

PS C:\Users\hengwei> Enter-SshSession -ComputerName 40.125.173.212
[40.125.173.212]: /home/hengwei # : pwd
/home/hengwei
[40.125.173.212]: /home/hengwei # : mkdir test
[40.125.173.212]: /home/hengwei # : ls
test
[40.125.173.212]: /home/hengwei # : ls -l
total 0
drwxrwxr-x. 2 hengwei hengwei 6 Nov 20 07:29 test
[40.125.173.212]: /home/hengwei # :

也可以使用invoke-sshcommand的模式实现命令

PS C:\Users\hengwei> Invoke-SshCommand -ComputerName 40.125.173.212 -Command "sudo cat /etc/fstab"
[40.125.173.212]
# UUID=b7559ac5-b3a4-4b00-b98a-a2a2611806d0 / xfs defaults 0 0
UUID=b98659b2-5f8c-493e-9304-658905ef1391 /boot xfs defaults 0 0

大家还可以安装一下其他的ssh模块,实现在Powershell中的ssh功能。

三 删除模块

以Posh-SSH模块为例,删除命令:

PS C:\windows\system32> remove-module -name posh-ssh -Force -Verbose -Debug
VERBOSE: Removing the imported "Get-PoshSSHModVersion" function.
VERBOSE: Removing the imported "Get-SFTPChildItem" function.
VERBOSE: Removing the imported "Get-SFTPContent" function.
......

同时,删除Posh-SSH的目录:

C:\Program Files\WindowsPowerShell\Modules\Posh-SSH

这样就彻底删除了Posh-SSH模块。

Powershell使用SSH的更多相关文章

  1. Azure PowerShell (12) 通过Azure PowerShell创建SSH登录的Linux VM

    <Windows Azure Platform 系列文章目录> 本章将介绍如何使用Azure PowerShell,创建SSH登录的Linux VM 前提要求: 1.安装Azure Pow ...

  2. powershell下ssh客户端套件实现

    有时会需要和Linux机器进行交互.所以这时就需要在Powershell中使用SSH. 0x01 查找Powershell中的SSH功能模块 如图,显示没有find-module的命令,需要安装Pac ...

  3. git SSH keys

    An SSH key allows you to establish a secure connection between your computer and GitLab. Before gene ...

  4. 在win中,给powershell客户端,搭建sshd服务器。

    下载:https://github.com/PowerShell/Win32-OpenSSH/releases     问:为什么要用这个sshd?答:这是微软用,openssh官方的源码,源码网址: ...

  5. Gitlab的SSH配置(linux和windows双版本)

    1. 步骤 1.首先现在电脑端安装好git,windows端请安装Git for Windows,Linux端请自行网上查询(Ubuntu: sudo apt-get install git)   2 ...

  6. gitlab 添加ssh秘钥

    在创建新的ssh秘钥对之前,要先确认一下电脑中是否已经有了一对秘钥: Git Bash on Windows / GNU/Linux / macOS / PowerShell: cat ~/.ssh/ ...

  7. Docker windows nano server容器中安装ssh实现远程登录管理

    [问题] 使用ServiceMonitor.exe作为前台进程运行起来的容器无法attach. 无法远程连接到运行中的容器中进行管理. [解决方法] 在container中新建管理员用户,通过SSH实 ...

  8. 食用Win系统自带的PowerShell登录服务器

    运行powershell输入ssh root@你的服务器ip -p你的端口 切换rm ~/.ssh/known_hosts cmd 运行 ping 你的ip -t一直ping ctrl+c停止 tra ...

  9. 使用PowerShell连接Ubuntu

    Ubuntu安装PowerShell Ubuntu安装PowerShell帮助文档 # Download the Microsoft repository GPG keys wget -q https ...

随机推荐

  1. shell复制除了某个文件的操作

    将app的已经写成带有日期名的日志放到归档特定目录(刨除正在记录的日志) find $APPHOME/logs | grep -v "info.log\|debug.log\|error.l ...

  2. LVS 命令使用

    LVS 命令使用 查询命令 ipvsadm -L # 查看lvs负载均衡信息ipvsadm -L -n # -n 查看IP端口ipvsadm -L -c   # 显示当前连接ipvsadm -L -- ...

  3. 常用display属性

    table 1. 宽高由内容撑开 2.独占一行 3.可设置宽高 4.可设置margin.padding inline-table 与display: table大体一致,区别在于不独占一行,为行内元素 ...

  4. winter 2018 02 01 关于模运算的一道题

    题目:给出一个正整数n,问是否存在x,满足条件2^x mod n=1,如果存在,求出x的最小值. 分析:1.若给出的n是1,则肯定不存在这样的x;     2.若给出的是偶数,2的次幂取余一个偶数得到 ...

  5. ⭐内核MKDEV(MAJOR, MINOR)宏

    版本:linux-2.6.24.4宏:    MKDEV(MAJOR, MINOR);  说明: 获取设备在设备表中的位置.        MAJOR   主设备号        MINOR   次设 ...

  6. 查看SELinux状态

    查看SELinux状态:1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 2.getenforce ##也可以用这个命令检查 关闭S ...

  7. Struts2的Action中访问servletAPI方式

    struts2的数据存放中心为ActionContext,其是每次请求来时都会创建一个ActionContext,访问结束销毁,其绑定在ThreadLocal上,由于每次访问web容器都会为每次请求创 ...

  8. SQL中的5种常用的聚集函数

    首先你要知道 where->group by->having->order by/limit  ,这个就是写sql语句时的顺序  常用的5个聚集函数: Max             ...

  9. python 操作mongoDB数据库

    网上关于python 操作mongoDB的相关文章相对不是很多,并且质量也不是很高!下面给出一个完整的 增删改查示例程序! #!/usr/bin/python # -*- coding: utf-8 ...

  10. 新手学逆向,调试abexcm1过程

    写在前面的话:在下完全就是一个新手,现在目前在学16位汇编,偶尔用OD调试看看程序,主要就是为了学习,今天写这个帖子,完全就是笔记用,然后拿出来和大家一起讨论交流. 因为刚开始接触,文章可能一些地方有 ...