<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sshd-projects on Apache Mina</title>
    <link>https://mina.apache.org/sshd-project.html</link>
    <description>Recent content in Sshd-projects on Apache Mina</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	<atom:link href="https://mina.apache.org/sshd-project/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Apache SSHD 0.1.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.1.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.1.0.html</guid>
      <description>Overview Apache Mina SSHD 0.1.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.1.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.1.0 Sources (.zip) PGP SHA Apache Mina SSHD 0.1.0 Sources (.bz2) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.1.0 (.jar) PGP SHA    Release Notes While the SSHD server side is maturing, the client side will certainly see some major changes in the future, so that the APIs are not considered stable yet.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.10.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.10.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.10.0.html</guid>
      <description>Overview Apache Mina SSHD 0.10.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.10.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.10.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.10.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.10.0 Binary (.zip) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.10.0 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.10.1 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.10.1.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.10.1.html</guid>
      <description>Overview Apache Mina SSHD 0.10.1 contains 2 minor packaging fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.10.1 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.10.1 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.10.1 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.10.1 Binary (.zip) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.10.1 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.11.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.11.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.11.0.html</guid>
      <description>Overview Apache Mina SSHD 0.11.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.11.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.11.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.11.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.11.0 Binary (.zip) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.11.0 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.12.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.12.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.12.0.html</guid>
      <description>Overview Apache Mina SSHD 0.12.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.12.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.12.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.12.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.12.0 Binary (.zip) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.12.0 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.13.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.13.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.13.0.html</guid>
      <description>Overview Apache Mina SSHD 0.13.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.13.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.13.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.13.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.13.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 0.13.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.14.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.14.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.14.0.html</guid>
      <description>Overview Apache Mina SSHD 0.14.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.14.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.14.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.14.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.14.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 0.14.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.2.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.2.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.2.0.html</guid>
      <description>Overview Apache Mina SSHD 0.2.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.2.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.2.0 Sources (.zip) PGP SHA Apache Mina SSHD 0.2.0 Sources (.bz2) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.2.0 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.2.0 contains a few enhancements and bug-fixes. Please report any feedback to users@mina.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.3.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.3.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.3.0.html</guid>
      <description>Overview Apache Mina SSHD 0.3.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.3.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.3.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.3.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.3.0 Binary (.zip) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.3.0 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.4.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.4.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.4.0.html</guid>
      <description>Overview Apache Mina SSHD 0.4.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.4.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.4.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.4.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.4.0 Binary (.zip) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.4.0 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.5.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.5.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.5.0.html</guid>
      <description>Overview Apache Mina SSHD 0.5.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.5.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.5.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.5.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.5.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 0.5.0 contains a few enhancements and bug-fixes. Please report any feedback to users@mina.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.6.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.6.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.6.0.html</guid>
      <description>Overview Apache Mina SSHD 0.6.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.6.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.6.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.6.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.6.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 0.6.0 contains a few enhancements and bug-fixes. Please report any feedback to users@mina.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.7.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.7.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.7.0.html</guid>
      <description>Overview Apache Mina SSHD 0.7.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.7.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.7.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.7.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.7.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 0.7.0 contains a few enhancements and bug-fixes. Please report any feedback to users@mina.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.8.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.8.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.8.0.html</guid>
      <description>Overview Apache Mina SSHD 0.8.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.8.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.8.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.8.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.8.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 0.8.0 contains a few enhancements and bug-fixes. Please report any feedback to users@mina.</description>
    </item>
    
    <item>
      <title>Apache SSHD 0.9.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_0.9.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_0.9.0.html</guid>
      <description>Overview Apache Mina SSHD 0.9.0 contains a few enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 0.9.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 0.9.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 0.9.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 0.9.0 Binary (.zip) PGP SHA   Individual jars:  Apache Mina SSHD Core 0.9.0 (.jar) PGP SHA    Release Notes Apache Mina SSHD 0.</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.0.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.0.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.0.0.html</guid>
      <description>Overview Apache Mina SSHD 1.0.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 1.0.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 1.0.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 1.0.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 1.0.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 1.0.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.1.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.1.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.1.0.html</guid>
      <description>Overview Apache Mina SSHD 1.1.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 1.1.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 1.1.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 1.1.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 1.1.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 1.1.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.1.1 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.1.1.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.1.1.html</guid>
      <description>Overview Apache Mina SSHD 1.1.1 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 1.1.1 Sources (.tar.gz) PGP SHA Apache Mina SSHD 1.1.1 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 1.1.1 Binary (.tar.gz) PGP SHA Apache Mina SSHD 1.1.1 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 1.1.1 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.2.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.2.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.2.0.html</guid>
      <description>Overview Apache Mina SSHD 1.2.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 1.2.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 1.2.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 1.2.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 1.2.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 1.2.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.3.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.3.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.3.0.html</guid>
      <description>Overview Apache Mina SSHD 1.3.0 contains a number of enhancements and bug-fixes.
Getting the Distributions N/A</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.4.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.4.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.4.0.html</guid>
      <description>Overview Apache Mina SSHD 1.4.0 contains a number of enhancements and bug-fixes.
Getting the Distributions N/A&amp;hellip;</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.6.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.6.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.6.0.html</guid>
      <description>Overview Apache Mina SSHD 1.6.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 1.6.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 1.6.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 1.6.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 1.6.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 1.6.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 1.7.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_1.7.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_1.7.0.html</guid>
      <description>Overview Apache Mina SSHD 1.7.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 1.7.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 1.7.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 1.7.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 1.7.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 1.7.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.0.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.0.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.0.0.html</guid>
      <description>Overview Apache Mina SSHD 2.0.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.0.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 2.0.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 2.0.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 2.0.0 Binary (.zip) PGP SHA    Release Notes There have been many bug fixes and improvements since last released version 1.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.1.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.1.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.1.0.html</guid>
      <description>Overview Apache Mina SSHD 2.1.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.1.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 2.1.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 2.1.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 2.1.0 Binary (.zip) PGP SHA    Release Notes A few backward incompatible changes have been made since the previous release, thus the version has been named 2.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.10.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.10.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.10.0.html</guid>
      <description>Overview Apache Mina SSHD 2.10.0 contains a number of enhancements and bug-fixes. See the lists at the Apache issue tracker and at the GitHub issue tracker.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.10.0 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.10.0 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.10.0 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.10.0 Binary (.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.11.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.11.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.11.0.html</guid>
      <description>Overview Apache Mina SSHD 2.11.0 contains a number of enhancements and bug-fixes. See the lists at the Apache issue tracker and at the GitHub issue tracker.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.11.0 Sources (.tar.gz) PGP SHA512 Apache Mina SSHD 2.11.0 Sources (.zip) PGP SHA512   Binary distributions:  Apache Mina SSHD 2.11.0 Binary (.tar.gz) PGP SHA512 Apache Mina SSHD 2.11.0 Binary (.zip) PGP SHA512    Please report any feedback to users@mina.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.12.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.12.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.12.0.html</guid>
      <description>Overview Apache Mina SSHD 2.12.0 contains a number of enhancements and bug-fixes. See the lists at the GitHub issue tracker.
Bug Fixes  GH-428/GH-392 SCP client fails silently when error signalled due to missing file or lacking permissions GH-434 Ignore unknown key types from agent or in OpenSSH host keys extension  New Features  GH-429 Support GIT protocol-v2 GH-445 OpenSSH &amp;ldquo;strict key exchange&amp;rdquo; protocol extension (CVE-2023-48795 mitigation)  Behavioral changes and enhancements New ScpTransferEventListener callback method Following GH-428/GH-392 a new handleReceiveCommandAckInfo method has been added to enable users to inspect acknowledgements of a receive related command.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.12.1 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.12.1.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.12.1.html</guid>
      <description>Overview Apache Mina SSHD 2.12.1 is a bugfix release. See the lists at the GitHub issue tracker.
Bug Fixes  GH-458 Singleton thread pool for kex message handler flushing SSHD-1338 Restore binary compatibility with 2.9.2  Getting the Distributions  Source distributions:  Apache Mina SSHD 2.12.1 Sources (.tar.gz) PGP SHA512 Apache Mina SSHD 2.12.1 Sources (.zip) PGP SHA512   Binary distributions:  Apache Mina SSHD 2.12.1 Binary (.tar.gz) PGP SHA512 Apache Mina SSHD 2.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.2.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.2.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.2.0.html</guid>
      <description>Overview Apache Mina SSHD 2.2.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.2.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 2.2.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 2.2.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 2.2.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 2.2.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.3.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.3.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.3.0.html</guid>
      <description>Overview Apache Mina SSHD 2.3.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.3.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 2.3.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 2.3.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 2.3.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 2.3.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.4.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.4.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.4.0.html</guid>
      <description>Overview Apache Mina SSHD 2.4.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.4.0 Sources (.tar.gz) PGP SHA Apache Mina SSHD 2.4.0 Sources (.zip) PGP SHA   Binary distributions:  Apache Mina SSHD 2.4.0 Binary (.tar.gz) PGP SHA Apache Mina SSHD 2.4.0 Binary (.zip) PGP SHA    Release Notes Apache Mina SSHD 2.4.0 contains a few enhancements and bug-fixes.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.5.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.5.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.5.0.html</guid>
      <description>Overview Apache Mina SSHD 2.5.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.5.0 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.5.0 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.5.0 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.5.0 Binary (.zip) PGP SHA256 SHA512    Please report any feedback to users@mina.apache.org.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.5.1 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.5.1.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.5.1.html</guid>
      <description>Overview Apache Mina SSHD 2.5.1 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.5.1 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.5.1 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.5.1 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.5.1 Binary (.zip) PGP SHA256 SHA512    Please report any feedback to users@mina.apache.org.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.6.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.6.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.6.0.html</guid>
      <description>Overview Apache Mina SSHD 2.6.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.6.0 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.6.0 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.6.0 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.6.0 Binary (.zip) PGP SHA256 SHA512    Please report any feedback to users@mina.apache.org.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.7.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.7.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.7.0.html</guid>
      <description>Overview Apache Mina SSHD 2.7.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.7.0 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.7.0 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.7.0 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.7.0 Binary (.zip) PGP SHA256 SHA512    Please report any feedback to users@mina.apache.org.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.8.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.8.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.8.0.html</guid>
      <description>Overview Apache Mina SSHD 2.8.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.8.0 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.8.0 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.8.0 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.8.0 Binary (.zip) PGP SHA256 SHA512    Please report any feedback to users@mina.apache.org.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.9.0 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.9.0.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.9.0.html</guid>
      <description>Overview Apache Mina SSHD 2.9.0 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.9.0 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.9.0 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.9.0 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.9.0 Binary (.zip) PGP SHA256 SHA512    Please report any feedback to users@mina.apache.org.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.9.1 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.9.1.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.9.1.html</guid>
      <description>Overview Apache Mina SSHD 2.9.1 contains a number of enhancements and bug-fixes.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.9.1 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.9.1 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.9.1 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.9.1 Binary (.zip) PGP SHA256 SHA512    Please report any feedback to users@mina.apache.org.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.9.2 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.9.2.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.9.2.html</guid>
      <description>Overview Apache Mina SSHD 2.9.2 contains a number of enhancements and bug-fixes. See the lists at the Apache issue tracker and at the GitHub issue tracker.
This release fixes CVE-2022-45047.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.9.2 Sources (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.9.2 Sources (.zip) PGP SHA256 SHA512   Binary distributions:  Apache Mina SSHD 2.9.2 Binary (.tar.gz) PGP SHA256 SHA512 Apache Mina SSHD 2.</description>
    </item>
    
    <item>
      <title>Apache SSHD 2.9.3 Release</title>
      <link>https://mina.apache.org/sshd-project/download_2.9.3.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/download_2.9.3.html</guid>
      <description>Overview Apache Mina SSHD 2.9.3 contains a number of enhancements and bug-fixes. See the lists at the Apache issue tracker and at the GitHub issue tracker.
This release fixes CVE-2023-35887.
Getting the Distributions  Source distributions:  Apache Mina SSHD 2.9.3 Sources (.tar.gz) PGP SHA512 Apache Mina SSHD 2.9.3 Sources (.zip) PGP SHA512   Binary distributions:  Apache Mina SSHD 2.9.3 Binary (.tar.gz) PGP SHA512 Apache Mina SSHD 2.9.3 Binary (.</description>
    </item>
    
    <item>
      <title>Embedding SSHD in 5 minutes</title>
      <link>https://mina.apache.org/sshd-project/embedding_ssh.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/embedding_ssh.html</guid>
      <description>Embedding SSHD in 5 minutes See https://github.com/apache/mina-sshd for more informations.</description>
    </item>
    
    <item>
      <title>SSHD Building</title>
      <link>https://mina.apache.org/sshd-project/building.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/building.html</guid>
      <description>Building SSHD SSHD uses Maven as its build tool. If you don&amp;rsquo;t fancy using Maven you can use your IDE directly or Download a distribution or JAR.
  Download and install Maven.
  Get the latest code from Git
  Build the code with the following command
 mvn clean install    </description>
    </item>
    
    <item>
      <title>SSHD Contributors</title>
      <link>https://mina.apache.org/sshd-project/contributors.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/contributors.html</guid>
      <description>Committers The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.
 Emmanuel L&amp;eacute;charny Guillaume Nodet Lyor Goldstein Shawn Pearce Thomas Wolf  Contributors The following additional people have contributed to this project through the way of suggestions, patches or documentation.
 Leo Bayer Andr&amp;eacute; Bierwolf Shikhar Bhushan C&amp;eacute;dric Chantepie Patrick Dessalle Ken Diep Laurent Duchesne Richard Evans Francois Fernandes Otto Frost Will Glass-Husain Andreas Johansson Nick Howes Kohsuke Kawaguchi Leonid Kof Bill Kuker Philippe Laflamme Tien Luong Daniel Micol-Ponce David Overton Simon Paradis Andrew Pikler Bobby Powers Taras Puchko Matthew Schulze Michael Stevens Liu Tao Pete Torgenrud Denis Tulskiy Frank van der Kleij Jason Van Zyl Tim Vernum  </description>
    </item>
    
    <item>
      <title>SSHD Documentation</title>
      <link>https://mina.apache.org/sshd-project/documentation.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/documentation.html</guid>
      <description>Apache SSHD documentation See https://github.com/apache/mina-sshd for more information.</description>
    </item>
    
    <item>
      <title>SSHD Downloads</title>
      <link>https://mina.apache.org/sshd-project/downloads.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/downloads.html</guid>
      <description>Latest SSHD Release The latest release is the SSHD 2.12.1 release. Apache Mina SSHD 2.12.1 contains a number of enhancements and bug-fixes. See the release notes.
 Source distributions:  Apache Mina SSHD 2.12.1 Sources (.tar.gz) PGP SHA512 Apache Mina SSHD 2.12.1 Sources (.zip) PGP SHA512   Binary distributions:  Apache Mina SSHD 2.12.1 Binary (.tar.gz) PGP SHA512 Apache Mina SSHD 2.12.1 Binary (.zip) PGP SHA512    Development snapshots You can build the latest version from sources.</description>
    </item>
    
    <item>
      <title>SSHD FAQ</title>
      <link>https://mina.apache.org/sshd-project/faq.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/faq.html</guid>
      <description>FAQ See https://github.com/apache/mina-sshd for more information.</description>
    </item>
    
    <item>
      <title>SSHD Features</title>
      <link>https://mina.apache.org/sshd-project/features.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/features.html</guid>
      <description>Features The list of features implemented by Mina SSHD is available at https://github.com/apache/mina-sshd.</description>
    </item>
    
    <item>
      <title>SSHD Getting Involved</title>
      <link>https://mina.apache.org/sshd-project/getting_involved.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/getting_involved.html</guid>
      <description>Getting Involved The Apache SSHD developers communicates using our Mailing Lists. If you have any questions, feedback or suggestions, you&amp;rsquo;re very welcome to join the list and send an email. We are also happy to receive bug reports and feature requests in our issue tracker.
Patches The best chance of getting your bug or feature fixed is to provide a patch, if they fit our goals we will usually have them committed within a few days.</description>
    </item>
    
    <item>
      <title>SSHD Issue Tracking</title>
      <link>https://mina.apache.org/sshd-project/issue_tracking.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/issue_tracking.html</guid>
      <description>Issue Tracking We are using two issue tracking systems to track all SSHD issues including bugs. Use either one, but please don&amp;rsquo;t file the same issue at both.
 Issues can be filed on GitHub issues. The JIRA issue tracker is the traditional issue tracker of the project.  If neither option is suitable for you, issues can also be reported via e-mail as a last resort.
How to report a bug Writing a bug report with detailed information will help us to fix your problem sooner.</description>
    </item>
    
    <item>
      <title>SSHD Mailing Lists</title>
      <link>https://mina.apache.org/sshd-project/mailing_lists.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/mailing_lists.html</guid>
      <description>Mailing List General information about the SSHD mailing lists can be found here.
For Users Please use this list for any questions regarding how to use SSHD.
         Subscribe users-subscribe@mina.apache.org   Unsubscribe users-unsubscribe@mina.apache.org   Post users@mina.apache.org   Archive https://www.mail-archive.com/users@mina.apache.org/    For Developers We use the MINA developers list for asking technical questions, discussing feature suggestions or general questions regarding the project.</description>
    </item>
    
    <item>
      <title>SSHD Overview</title>
      <link>https://mina.apache.org/sshd-project/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/</guid>
      <description>Overview Apache MINA SSHD is a 100% pure java library to support the SSH protocols on both the client and server side. It does not aim at being a replacement for the SSH client or SSH server from Unix operating systems, but rather provides support for Java based applications requiring SSH support.
The library can leverage several I/O back-ends:
 The default transport is built-in and uses Java&amp;rsquo;s AsynchronousSocketChannels. Apache MINA, a scalable and high performance asynchronous I/O library, can be used instead, or the Netty asynchronous event-driven network framework is also supported.</description>
    </item>
    
    <item>
      <title>SSHD Sources</title>
      <link>https://mina.apache.org/sshd-project/sources.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://mina.apache.org/sshd-project/sources.html</guid>
      <description>Overview Sources for the Apache MINA projects are currently managed through Git. Instructions on Git use can be found at the official Git site.
Normal Git Access Anyone can check code out of Git. You only need to specify a username and password in order to update the Git repository, and only MINA committers have the permissions to do that. We run Git over standard HTTPS, so hopefully you won&amp;rsquo;t have problems with intervening firewalls.</description>
    </item>
    
  </channel>
</rss>