脚本专栏 
首页 > 脚本专栏 > 浏览文章

PowerShell小技巧之尝试ssh登录

(编辑:jimmy 日期: 2026/6/18 浏览:3 次 )

在PSNet程序集中继续进行扩展,在$env:PSSpace/PSNet/TCPOp/下创建Invoke-SSHLogin.ps1脚本用于在传入指定ssh地址、用户名和密码后返回是否登录成功。

在$env:PSSpace/PSNet/下创建Lib目录用于存放在脚本中需要使用的第三方库,由于在本文中需要引用Renci.SshNet.dll用户可以从http://sshnet.codeplex.com/releases/view/72214中下载程序,解压后将文件放置在$env:PSSpace/PSNet/Lib中用于后续的调用。

在$env:PSSpace/PSNet/PSNet.psm1添加对刚下载的程序集的引用,并添加对Invoke-SSHLogin.ps1脚本的引用,在PowerShell启动时同时加载并初始化函数。

复制代码 代码如下:
[void][reflection.assembly]::LoadFrom((Resolve-Path "$env:PSSpace/PSNet/Lib/Renci.SshNet.dll"))
. $env:PSSpace/PSNet/TCPOp/Invoke-SSHLogin.ps1

上述两条语句,第一条用于获取Dll文件的绝对位置,并将dll文件 引用到当前session中。

接下来定义此函数中的相关参数:

-Site参数用于指定要尝试密码的SSH主机域名或IP,此参数必须
-User参数用于指定登录时使用的用户名,此参数必须
-Pass参数用于指定登录时使用的密码,此参数必须

此脚本文件加载后的调用方式如下:
复制代码 代码如下:
Invoke-SSHLogin -Site localhost -User fuhj -Pass P@ssWorD

执行效果图如下:

PowerShell小技巧之尝试ssh登录

能看到例子中,选择了正确的主机名,用户名和密码后登录成功了,而输入错误的用户名和密码以及输出不存在监听的主机名时均报错了.为了保证服务器和用户名密码的安全,对于存在的主机已经通过处理抹去了主机名用户名和密码了.
源代码如下:

复制代码 代码如下:
 =====文件名:Invoke-SSHLogin.ps1=====
Function Invoke-SSHLogin{
Param(
      [parameter(Mandatory = $true)]
      [string]$Site = "localhost",
      [parameter(Mandatory = $true)]
      [string]$User = "Anonymous",
      [parameter(Mandatory = $true)]
      [string]$Pass = "hello@world",
      [int]$Port=22
)

Write-Host "Try to Login ssh..."

# Do directory listing
$SSHreq = New-Object Renci.SshNet.SshClient($Site,$Port,$User,$Pass)

try
{
    $SSHreq.Connect()
    if ($SSHreq.IsConnected) {
    $cmd = $SSHreq.RunCommand("ps aux")
    $output = $cmd.Result.Split("`n")
    $success = $true
    Write-Host "Login Succed" -BackgroundColor green -ForegroundColor yellow
    }
$cmd.Dispose()
$SSHreq.Disconnect()
$SSHreq.Dispose()
}
catch
{
   Write-Host "FAILED: $_"  -BackgroundColor red -ForegroundColor black
   $success = $false
}
}

上一篇:PowerShell脚本开发之收发TCP消息包
下一篇:PowerShell小技巧之发送TCP请求
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap