windows安装ssh linux本身使用ssh无需安装一。windowsserver2012R2安装openssh1。下载 访问Openssh官网并根据操作系统的位数选择合适的安装包 进入官网后,根据操作系统位数选择合适的安装包。不过64位系统也可以支持32位的安装包。我这里系统64位的安装的是32位的安装包。2。将下载的安装包解压至C:ProgramFiles目录下 打开powershell终端,进入包含ssh可执行exe文件的文件夹cdC:OpenSSHWin32OpenSSHWin32。 3。安装ssh服务 在powershell终端输入下面指令:powershell。exeExecutionPolicyBypassFileinstallsshd。ps1复制代码 安装成功后如下所示: 4。配置ssh服务在防火墙开启端口22端口号:在powershell中输入以下指令:netshadvfirewallfirewalladdrulenamesshddirinactionallowprotocolTCPlocalport22复制代码 启动ssh服务netstartsshd复制代码5。添加环境系统变量 将包含ssh可执行exe文件所在路径(我这里是:C:ProgramFilesOpenSSHWin32OpenSSHWin32)添加到环境系统变量中。 最后打开cmd或者powershell,输入ssh出现如下图所示,就代表已经安装成功。 6。设置开机sshd服务开机自启 打开服务 方法一:依次打开服务器管理器》工具》服务 方法二:WinR输入services。msc 进入服务列表界面,找到OpenSSHSSHServer服务 将下图中opensshauthenticationagent按照上图也进行同样操作。 本身自带ssh服务的windows(例如windows10)开启ssh服务1。客户端安装 开始应用与功能可选功能添加功能 列表中有OpenSSH客户端的选项 点击安装OpenSSH客户端 安装之后可使用WindowsPowerShell直接使用ssh命令2。服务端安装 开始应用与功能可选功能添加功能 列表中有OpenSSH服务器的选项 点击安装OpenSSH服务器 服务端安装完之后需要进行一些配置 3。服务端配置 使用管理员身份运行WindowsPowerShell 开启SSHD服务StartServicesshd复制代码 设置服务自动启动SetServiceNamesshdStartupTypeAutomatic复制代码 确认防火墙是否开放GetNetFirewallRuleNamessh复制代码 查看OpenSSHServerInTCP的enable是否为True 配置完成之后其他客户端可使用ssh连接windows,用户名和密码就是windows的用户名和密码springboot使用引入hutooldependencygroupIdcn。hutoolgroupIdhutoolallartifactIdversion5。3。4versiondependency复制代码引入jschdependencygroupIdcom。jcraftgroupIdjschartifactIdversion0。1。55versiondependency复制代码使用方式上传Testvoidtest18(){测试目录StringlinuxPathvarfiletest;创建session连接SessionsessionLinuxJschUtil。getSession(ip,端口,用户名,密码);1。文件操作建立sftpSftpsftpJschUtil。createSftp(sessionLinux);进入输入目录sftp。cd(linuxPath);文件名称StringfileNameSftp创建文件夹于DateUtil。format(newDate(),yyyy年MM月dd日HH时mm分ss秒);1。创建文件夹sftp。mkdir(fileName);System。out。println(1。远程文件操作);System。out。println(fileName,文件是否存在?sftp。exist(linuxPathfileName));删除文件sftp。delDir(linuxPathfileName);System。out。println(fileName,文件是否存在?sftp。exist(linuxPathfileName));System。out。println();2。上传文件本地新建文件System。out。println(2。上传文件操作);StringlocalFileDateUtil。format(newDate(),yyyy年MM月dd日HH时mm分ss秒)。txt;System。out。println(localFile);FileWriterfileWriternewFileWriter(localFile);写入内容FilefilefileWriter。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(linuxPathlocalFile));sftp。delFile(linuxPathlocalFile);System。out。println(localFile,文件是否存在?sftp。exist(linuxPathfileName));sftp。put(file。getPath(),linuxPath);put方法System。out。println(2。put方法);System。out。println(localFile,文件是否存在?sftp。exist(linuxPathlocalFile));sftp。delFile(linuxPathlocalFile);System。out。println(localFile,文件是否存在?sftp。exist(linuxPathfileName));删除本地文件FileUtil。del(file);}复制代码 运行结果: 下载Testvoidtest20(){SessionsessionWindowsJschUtil。getSession(账号,22,用户名,密码);SftpsftpJschUtil。createSftp(sessionWindows);StringpathC:test;StringfileNameSftp创建文件夹于DateUtil。format(newDate(),yyyy年MM月dd日HH时mm分ss秒);System。out。println(路径问题);try{sftp。cd(C:test);}catch(Exceptione){System。out。println(盘符前未加捕获异常:e。toString());}System。out。println();System。out。println(mkdir和mkDirs方法的区别);try{sftp。mkdir(pathIdUtil。simpleUUID()fileName);}catch(Exceptione){System。out。println(创建文件夹异常(未能递归创建文件):e。toString());}sftp。mkDirs(pathIdUtil。simpleUUID()fileName);System。out。println(mkDirs创建文件夹成功!!!);System。out。println();System。out。println(下载文件);sftp。get(C:1。exe,D:aaaaTest1。exe);System。out。println(下载成功);sftp。download(C:1。exe,newFile(D:aaaaTest2。exe));System。out。println(下载成功);}复制代码 运行结果