网站首页 > 博客文章 正文
windows安装ssh
linux 本身使用ssh 无需安装
一.windows server 2012 R2安装openssh
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服务开机自启
打开服务
方法一:依次打开“服务器管理器”——》“工具”——》“服务”
方法二:Win+R 输入 services.msc
进入服务列表界面,找到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("ip", 端口,"用户名", "密码");
// 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);
}
复制代码
运行结果:
下载
@Test
void test20(){
Session sessionWindows = JschUtil.getSession("账号", 22,"用户名", "密码");
Sftp sftp = JschUtil.createSftp(sessionWindows);
String path = "/C:/test/";
String fileName = "Sftp创建文件夹于"+DateUtil.format(new Date(), "yyyy年MM月dd日HH时mm分ss秒");
System.out.println("===========================路径问题===========================");
try{
sftp.cd("C:/test");
}catch (Exception e){
System.out.println("盘符前未加 / 捕获异常:"+e.toString());
}
System.out.println();
System.out.println("==========================mkdir和mkDirs方法的区别==============");
try {
sftp.mkdir(path+ IdUtil.simpleUUID() + "/"+fileName);
}catch (Exception e){
System.out.println("创建文件夹异常 (未能递归创建文件):"+e.toString());
}
sftp.mkDirs(path+ IdUtil.simpleUUID() + "/"+fileName);
System.out.println("mkDirs创建文件夹成功!!!");
System.out.println();
System.out.println("===========================下载文件=======================");
sftp.get("/C:/1.exe","D:/aaaaTest/1.exe");
System.out.println("下载成功");
sftp.download("/C:/1.exe", new File("D:/aaaaTest/2.exe"));
System.out.println("下载成功");
}
复制代码
运行结果
猜你喜欢
- 2024-11-12 基于SpringBoot 的CMS系统,拿去开发企业官网真香(附源码)
- 2024-11-12 解决JAVA压缩图片变色问题(java压缩图片至指定大小)
- 2024-11-12 J2eeFAST 开源平台(j2ee开发工具)
- 2024-11-12 Java项目中用它来代替一半的反射使用,爽到飞起!
- 2024-11-12 反射用不好真的会影响代码执行效率!
- 2024-11-12 基于AbstractProcessor扩展MapStruct自动生成实体映射工具类
- 2024-11-12 Java面试问题(一)—— java 基础(java面试问题大全及答案大全)
- 2024-11-12 一个轻量级的Java快速开发平台快速开发项目并交付「接私活利器」
- 2024-11-12 电商系统中的 ID 是如何生成的?(电商注册账号是什么)
- 2024-11-12 用了这两款插件,同事再也不说我代码写的烂了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)