powershell修改Linux密码,用PowerShell通过Posh-SSH免密码自动登录Linux并执行命令

Synology NAS用key做免密码认证SSH访问,尝试了设定,不得其门而入,因此尝试其他方法,找到这个PowerShell插件Posh-SSH可以实现https://github.com/darkoperator/Posh-SSH,具体安装步骤如下。

查看Powell版本命令:Get-Host | Select-Object Version

05477e9853fd2c557fa1ae160336ad05.png

Posh-SSH要求5.1或7.x以上版本,需要升级powershell,

机器是server2012 R2版本,下载地址:

安装完后会要求重启系统,完成后检查版本

1b22c7df7339be98bfd720a93a0096a5.png

尝试按照GIT上面提示的命令安装:Install-Module -Name Posh-SSH

弹出错误提示:PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories.

f867da5fb11845ed69e8cb6c6d6ddf97.png

用如下2个命令解决这个问题

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-PackageProvider -Name NuGet

2fffaf2090625fc38400f4e1d62c46ae.png

再次运行命令:Install-Module -Name Posh-SSH

4d16f368148faed03833e28ffdb3dc39.png

安装完成,接着便可编写PowerShell脚本操作

$Password = "abcd1234562"

$User = "admin"

$ComputerName = "192.168.1.1"

$Command = "ls"

$secpasswd = ConvertTo-SecureString $Password -AsPlainText -Force

$Credentials = New-Object System.Management.Automation.PSCredential($User, $secpasswd)

$SessionID = New-SSHSession -ComputerName $ComputerName -Credential $Credentials #Connect Over SSH

Invoke-SSHCommand -Index $sessionid.sessionid -Command $Command # Invoke Command Over SSH

###如果ssh不是用标准22端口,可以在这里指定

$SessionID = New-SSHSession -ComputerName $ComputerName -Credential $Credentials -Port 1234

###或者执行sh脚本,在Command处指定:此处发现无法执行sh shellscript的方式, 例如"sh /tmp/test.sh"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值