JschUtil使用下载安装
样子菌 人气:0windows server 2012 R2安装openssh
windows安装ssh
linux 本身使用ssh 无需安装
1.下载
访问Openssh官网并根据操作系统的位数选择合适的安装包
进入官网后,根据操作系统位数选择合适的安装包。不过64位系统也可以支持32位的安装包。我这里系统64位的安装的是32位的安装包。
2.将下载的安装包解压至C:/Program Files/目录下
打开powershell终端,进入包含ssh可执行exe文件的文件夹 cd C:\OpenSSH-Win32\OpenSSH-Win32。
3.安装ssh服务
在powershell终端输入下面指令:
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
安装成功后如下所示:
4.配置ssh服务
- 在防火墙开启端口22端口号:在powershell中输入以下指令:
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
启动ssh服务
net start sshd
5.添加环境系统变量
将包含ssh可执行exe文件所在路径(我这里是:C:\Program Files\OpenSSH-Win32\OpenSSH-Win32)添加到环境系统变量中。
最后打开cmd或者powershell,输入ssh出现如下图所示,就代表已经安装成功。
6.设置开机sshd服务开机自启
依次打开“服务器管理器”——》“工具”——》“服务”
进入服务列表界面,找到OpenSSH SSH Server服务
将下图中 openssh authentication agent按照上图也进行同样操作。
本身自带ssh服务的windows(例如windows10) 开启ssh服务
1.客户端安装
开始 -> 应用与功能 -> 可选功能 -> 添加功能
列表中有OpenSSH客户端的选项
点击安装OpenSSH客户端
安装之后可使用Windows PowerShell直接使用ssh命令
2.服务端安装
开始 -> 应用与功能 -> 可选功能 -> 添加功能
列表中有OpenSSH服务器的选项
点击安装OpenSSH服务器
服务端安装完之后需要进行一些配置
3.服务端配置
使用管理员身份运行Windows PowerShell
开启SSHD服务
Start-Service sshd
设置服务自动启动
Set-Service -Name sshd -StartupType 'Automatic'
确认防火墙是否开放
Get-NetFirewallRule -Name *ssh*
查看OpenSSH-Server-In-TCP的enable是否为True
配置完成之后其他客户端可使用ssh连接windows,用户名和密码就是windows的用户名和密码
springboot使用
引入hutool
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.4</version> </dependency>
引入 jsch
<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </dependency>
使用方式
上传
@Test void test18() { //测试目录 String linuxPath = "/var/file/test/"; //创建session连接 Session sessionLinux = JschUtil.getSession("106.12.127.40", 22,"root", "Ocean@123"); // 1.文件操作 // 建立sftp Sftp sftp = JschUtil.createSftp(sessionLinux); //进入输入目录 sftp.cd(linuxPath); //文件名称 String fileName = "Sftp创建文件夹于"+DateUtil.format(new Date(), "yyyy年MM月dd日HH时mm分ss秒"); //1.创建文件夹 sftp.mkdir(fileName); System.out.println("=========================1.远程文件操作========================="); System.out.println(fileName+",文件是否存在?"+sftp.exist(linuxPath+fileName)); //删除文件 sftp.delDir(linuxPath+fileName); System.out.println(fileName+",文件是否存在?"+sftp.exist(linuxPath+fileName)); System.out.println(); //2.上传文件 // 本地新建文件 System.out.println("=========================2.上传文件操作========================="); String localFile = DateUtil.format(new Date(), "yyyy年MM月dd日HH时mm分ss秒")+".txt"; System.out.println(localFile); FileWriter fileWriter = new FileWriter(localFile); // 写入内容 File file = fileWriter.write("123"); fileWriter.append("追加信息"); System.out.println(file.getPath()); sftp.upload(linuxPath, file); //upload方法 System.out.println("1.upload方法"); System.out.println(localFile+",文件是否存在?"+sftp.exist(linuxPath+localFile)); sftp.delFile(linuxPath+localFile); System.out.println(localFile+",文件是否存在?"+sftp.exist(linuxPath+fileName)); sftp.put(file.getPath(),linuxPath); //put方法 System.out.println("2.put方法"); System.out.println(localFile+",文件是否存在?"+sftp.exist(linuxPath+localFile)); sftp.delFile(linuxPath+localFile); System.out.println(localFile+",文件是否存在?"+sftp.exist(linuxPath+fileName)); //删除本地文件 FileUtil.del(file); }
运行结果:
加载全部内容