如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

Yog*_*thi 5 ssh android jsch

我正在开发像sshdroid 这样的应用程序。

我想在 Android 操作系统上打开 ssh 连接,并且我想从 PC 连接应用程序。

我使用了 JSCH lib ,但是这个lib用于将android连接到pc。我的要求是 PC 到 Android,任何人都知道任何库或任何源代码可用。

我已经尝试过了。

connectbot.(it is unmaintained lib).
JSCH lib (it is connect android to pc).
SSHelper_source (not help to me).
SSHJ ( tried not helpful).
Run Code Online (Sandbox Code Playgroud)

Yog*_*thi 3

public void startSSHServer() {\n    int port = 8888;\n    SshServer sshd = SshServer.setUpDefaultServer();\n    sshd.setPort(port);\n    sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(\n            "src/test/resources/hostkey.ser"));\n    sshd.setSubsystemFactories(Arrays\n            .<NamedFactory<Command>> asList(new SftpSubsystem.Factory()));\n    sshd.setCommandFactory(new ScpCommandFactory());\n    sshd.setShellFactory(new ProcessShellFactory(new String[] { "/system/bin/sh", "-i", "-l" })); // necessary if you want to type commands over ssh\n    sshd.setPasswordAuthenticator(new PasswordAuthenticator() {\n\n        @Override\n        public boolean authenticate(String u, String p, ServerSession s) {\n            return ("sftptest".equals(u) && "sftptest".equals(p));\n        }\n    });\n\n    try {\n        sshd.start();\n    } catch (IOException e) {\n        e.printStackTrace();\n    }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

来自amard的回答。(感谢阿马尔给出正确的答案)

\n\n

检查 github 上的示例

\n\n

如果出现以下错误

\n\n

错误:任务执行失败>

\n\n
\n

\':app:transformResourcesWithMergeJavaResForDebug\'。>\n com.android.build.api.transform.TransformException:\n com.android.builder.packaging.DuplicateFileException: APK META-INF/DEPENDENCIES 中复制的重复文件\n File1: /home/yogesh/.gradle/caches /modules-2/files-2.1/org.apache.mina/mina-core/2.0.2/\xe2\x80\x8c\xe2\x80\x8be365a84cc76a64bf1508af83da0ea852c35e79c8/mina-core-2.0.2.jar\n 文件2: / home/yogesh/.gradle/caches/modules-2/files-2.1/org.apache.sshd/sshd-core/0.6.0/\xe2\x80\x8c\xe2\x80\x8b2b9a119dd77a1decec78b0c511ba400c8655e96e/sshd-core-0.6。 0.jar

\n
\n\n

然后尝试在您的应用程序 build.gradle 中使用它来解决上述异常。

\n\n
apply plugin: \'com.android.model.application\'\nmodel {\n android {\n   ...\n }\n android.packagingOptions {\n    exclude \'META-INF/DEPENDENCIES\'\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n