Как использовать SFTP в Java (когда S SH отключен) - PullRequest
0 голосов
/ 10 июля 2020

Моя компания отключила S SH, но разрешает SFTP.

Например, команды «sftp» будут работать, а «s sh» - нет.

Они могут иметь настроил что-то вроде этого в "/ etc / ssh / sshd_config":

    Match Group sftp-only
    ForceCommand internal-sftp
    ChrootDirectory /pub/sftp
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

Есть ли клиент SFTP для Java, который будет работать без необходимости открывать соединение S SH?

Я использую sshj, и типичный шаблон не работает:

import net.schmizz.sshj.*;

...

void connect() {
    SSHClient sshClient; 
    SFTPClient sftpClient;

    sshClient = new SSHClient();
    sshClient.connect(hostname, port);  // Port = 2233
    sshClient.authPublickey(username, privatekey);
    sftpClient = sshClient.newSFTPClient();
}

Приведенный выше код вызывает исключение в «sshClient.connect ()»:

Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at net.schmizz.sshj.SocketClient.connect(SocketClient.java:126)
...