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

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


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

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

https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win8.1AndW2K12R2-KB3191564-x64.msu

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

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

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

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

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet

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


安装完成,接着便可编写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"




©著作权归作者所有:来自51CTO博客作者simmy的原创作品,如需转载,请注明出处,否则将追究法律责任

如果文章对你有帮助,请赞赏

赞赏

0人进行了赞赏支持

更多相关文章

  1. 文字编辑器如何从命令行运行宏或脚本
  2. HBase版本|Apache HBase 2.2.5版本可用
  3. FTP文件传输协议介绍和常用命令
  4. PHP Mysql教程 PHP初中级开发者必学的MySQL教程
  5. 将powerjob-server 3.4升级为4.0版本
  6. vmware.exe命令行参数详解
  7. CentOS 服务器使用命令对图片进行压缩以及图片格式转换
  8. Linux主流的发行版本!初学者的首选
  9. 谷歌、脸书、魔兽世界都在用!InnoDB是什么?有哪些关键特性?

随机推荐

  1. Google Developing for Android 二 - Memo
  2. 谷歌Android为何关闭源代码?
  3. Android——EditText【输入框】的所有属
  4. 在Android中使用Lua脚本 —— Programing
  5. android中的weight
  6. Android日记之2012/02/16——浅谈Android
  7. android开发问题解决日志
  8. [置顶] 浅谈Android的资源编译过程
  9. Android Studio 快速开始
  10. 1.3TextView