使用Plink -ssh与Linux交互

来源:互联网 发布:java 金额转换成大写 编辑:程序博客网 时间:2024/06/05 09:31

PowerShell的环境变量

PSModulePath 

在PowerShell的命令行查看环境变量

PS C:\Users\autodump> $env:PSModulePath -split ';'C:\Users\autodump\Documents\WindowsPowerShell\ModulesC:\Program Files\WindowsPowerShell\ModulesC:\Windows\system32\WindowsPowerShell\v1.0\Modules\C:\Program Files\VisualSVN Server\PowerShellModulesC:\Program Files (x86)\AutoIt3\AutoItX


查看PowerShell的版本信息

PS C:\Users\autodump> $PSVersionTableName                           Value                                                                                                                                     ----                           -----                                                                                                                                     PSVersion                      4.0                                                                                                                                       WSManStackVersion              3.0                                                                                                                                       SerializationVersion           1.1.0.1                                                                                                                                   CLRVersion                     4.0.30319.34014                                                                                                                           BuildVersion                   6.3.9600.17400                                                                                                                            PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}                                                                                                                      PSRemotingProtocolVersion      2.2                                                                                                                                       


使用SSH.NET库

下载SSH.NET

Download Script Module and DLL file: SSH-SessionsPSv3.zip

相关Wiki

http://www.powershelladmin.com/wiki/SSH_from_PowerShell_using_the_SSH.NET_library

解压缩上述下载的Zip文件,并放到PSModulePath环境变量指示的任意文件夹下,比如我放置的的地方:

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

按上述描述放置好后,使用Import-Module加载模块

PS C:\Users\autodump> Import-Module SSH-Sessions<span style="color:#FF0000;">Import-Module : Could not load file or assembly 'file:///C:\Program Files\WindowsPowerShell\Modules\SSH-Sessions\Renci.SshNet.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)At line:1 char:1+ Import-Module SSH-Sessions+ ~~~~~~~~~~~~~~~~~~~~~~~~~~    + CategoryInfo          : InvalidOperation: (:) [Import-Module], FileLoadException    + FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand</span>

遇到上述错误,右键点击所有文件,Renci.SshNet.dllSSH-Sessions.psd1SSH-Sessions.psm1,查看是否因为安全原因被操作系统block,有的话,全部unblock


然后关闭Windows PowerShell窗口重新打开,再次执行

PS C:\Users\autodump> Import-Module SSH-SessionsPS C:\Users\autodump> 

使用PLINK.EXE登录Linux

PS C:\Users\autodump> plink.exe -ssh -l USERNAME -pw PASSWORD HOSTNAME

这里与PowerShell无关,可以使用PowerShell或BAT脚本

使用plink.exe登录Linux并在Linux下执行指令或跑既定的shell脚本

创建bat批处理脚本

脚本命名为autoobj.bat

rem login linux hostrem see: http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink-usage-batchrem usage: plink.exe -ssh -l UNSERNAME -pw PASSWORD HOSTNAME(or IP) -m COMMANDS fileplink.exe -ssh -l JIUHZHAN -pw Chifang617 st-lnx-855 -m obj_856_cmd.txt

创建远程命令文件obj_856_cmd.txt,用于登录到Linux主机后代替手动的指令输入

cd /home/jiuhzhan/peopleautopwdls./testftp.sh

注意

使用plink.exe执行Linux上指令可能会遇到错误,这种错误是由环境变量不一致引起的,比如PATH的值不全,导致有些指令使用plink.exe将无法执行

可以将PATH的值写在脚本的头部初始化环境变量

使用plink.exe和putty登录系统会执行不同的shell,见http://fixunix.com/ssh/74174-different-remote-environment-variables-putty-plink.html

http://stackoverflow.com/questions/3407386/plink-does-not-source-bashrc-or-bash-profile-on-connect

0 0
原创粉丝点击