mirror of
https://github.com/hierynomus/sshj.git
synced 2025-12-06 15:20:54 +03:00
Fixed examples for 0.31.0
This commit is contained in:
@@ -55,7 +55,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.hierynomus</groupId>
|
<groupId>com.hierynomus</groupId>
|
||||||
<artifactId>sshj</artifactId>
|
<artifactId>sshj</artifactId>
|
||||||
<version>0.24.0</version>
|
<version>0.31.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class InMemoryKnownHosts {
|
|||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
InputStream entry = new ByteArrayInputStream("localhost ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPmhSBtMctNa4hsZt8QGlsYSE5/gMkjeand69Vj4ir13".getBytes(Charset.defaultCharset()));
|
InputStream entry = new ByteArrayInputStream("localhost ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPmhSBtMctNa4hsZt8QGlsYSE5/gMkjeand69Vj4ir13".getBytes(Charset.defaultCharset()));
|
||||||
SSHClient ssh = new SSHClient();
|
SSHClient ssh = new SSHClient();
|
||||||
ssh.addHostKeyVerifier(new InMemoryHostKeyVerifier(entry, Charset.defaultCharset()));
|
ssh.addHostKeyVerifier(new OpenSSHKnownHosts(new InputStreamReader(entry, Charset.defaultCharset())));
|
||||||
ssh.connect("localhost");
|
ssh.connect("localhost");
|
||||||
try {
|
try {
|
||||||
ssh.authPublickey(System.getProperty("user.name"));
|
ssh.authPublickey(System.getProperty("user.name"));
|
||||||
@@ -28,44 +28,4 @@ public class InMemoryKnownHosts {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class InMemoryHostKeyVerifier implements HostKeyVerifier {
|
|
||||||
|
|
||||||
private final List<OpenSSHKnownHosts.KnownHostEntry> entries = new ArrayList<OpenSSHKnownHosts.KnownHostEntry>();
|
|
||||||
|
|
||||||
public InMemoryHostKeyVerifier(InputStream inputStream, Charset charset) throws IOException {
|
|
||||||
final OpenSSHKnownHosts.EntryFactory entryFactory = new OpenSSHKnownHosts.EntryFactory();
|
|
||||||
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
|
|
||||||
while(reader.ready()) {
|
|
||||||
String line = reader.readLine();
|
|
||||||
try {
|
|
||||||
OpenSSHKnownHosts.KnownHostEntry entry = entryFactory.parseEntry(line);
|
|
||||||
if (entry != null) {
|
|
||||||
entries.add(entry);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
//log error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean verify(String hostname, int port, PublicKey key) {
|
|
||||||
final KeyType type = KeyType.fromKey(key);
|
|
||||||
if (type == KeyType.UNKNOWN) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (OpenSSHKnownHosts.KnownHostEntry e : entries) {
|
|
||||||
try {
|
|
||||||
if (e.appliesTo(type, hostname) && e.verify(key)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} catch (IOException ioe) {
|
|
||||||
//log error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.schmizz.sshj.examples;
|
|||||||
|
|
||||||
import net.schmizz.sshj.SSHClient;
|
import net.schmizz.sshj.SSHClient;
|
||||||
import net.schmizz.sshj.connection.channel.direct.LocalPortForwarder;
|
import net.schmizz.sshj.connection.channel.direct.LocalPortForwarder;
|
||||||
|
import net.schmizz.sshj.connection.channel.direct.Parameters;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
@@ -28,8 +29,8 @@ public class LocalPF {
|
|||||||
* _We_ listen on localhost:8080 and forward all connections on to server, which then forwards it to
|
* _We_ listen on localhost:8080 and forward all connections on to server, which then forwards it to
|
||||||
* google.com:80
|
* google.com:80
|
||||||
*/
|
*/
|
||||||
final LocalPortForwarder.Parameters params
|
final Parameters params
|
||||||
= new LocalPortForwarder.Parameters("0.0.0.0", 8080, "google.com", 80);
|
= new Parameters("0.0.0.0", 8080, "google.com", 80);
|
||||||
final ServerSocket ss = new ServerSocket();
|
final ServerSocket ss = new ServerSocket();
|
||||||
ss.setReuseAddress(true);
|
ss.setReuseAddress(true);
|
||||||
ss.bind(new InetSocketAddress(params.getLocalHost(), params.getLocalPort()));
|
ss.bind(new InetSocketAddress(params.getLocalHost(), params.getLocalPort()));
|
||||||
|
|||||||
Reference in New Issue
Block a user