Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android到SSH服务器连接密码_Android_Ssh_Password Protection_Jsch - Fatal编程技术网

Android到SSH服务器连接密码

Android到SSH服务器连接密码,android,ssh,password-protection,jsch,Android,Ssh,Password Protection,Jsch,我有一个Android应用程序,打算供大约10人使用,也就是说,它不会发布,而是在内部。应用程序使用jsch将用户连接到SSH服务器。我在决定用户如何登录时遇到了一个问题。尽管该应用程序严重限制了用户登录服务器时的功能,基本上只允许上传某些文件,但他们仍然必须登录,使用用户密码,每个人都使用相同的用户帐户。我不认为像这样泄露密码是一个好主意,所以我正在考虑允许用户在不知道登录密码的情况下使用应用程序的方法。我的想法到目前为止 1生成一个ssh密钥并将其放在每个android设备上。我还不知道该怎

我有一个Android应用程序,打算供大约10人使用,也就是说,它不会发布,而是在内部。应用程序使用jsch将用户连接到SSH服务器。我在决定用户如何登录时遇到了一个问题。尽管该应用程序严重限制了用户登录服务器时的功能,基本上只允许上传某些文件,但他们仍然必须登录,使用用户密码,每个人都使用相同的用户帐户。我不认为像这样泄露密码是一个好主意,所以我正在考虑允许用户在不知道登录密码的情况下使用应用程序的方法。我的想法到目前为止

1生成一个ssh密钥并将其放在每个android设备上。我还不知道该怎么做,或者是否可能

2加密密码并将其存储在手机上,然后为用户创建应用程序密码以登录应用程序


我想知道最好的做法是什么。

因为这是一个只有10个用户的内部应用程序,为什么不在登录过程中发送手机的IMEI值呢。然后,您可以在服务器上拥有一个带有允许IMEI编号的小表/文件。这有点像无线路由器的MAC地址过滤。

首先,您可以在服务器端限制用户帐户可以执行的操作-执行此操作。请参阅下面的一些提示

其次,我将使用公钥身份验证方法。为每个用户生成不同的私钥并将其存储在他们的手机上安卓手机有某种文件系统,不是吗?可能是用密码加密的,这样邪恶的手机窃贼就不能使用密钥了

可能有一些内置的加密密钥保存设备-如果是这样,您当然可以使用它。但我对安卓的了解还不够,无法在这里提供帮助

假设服务器使用~/.ssh/authorized_-keys文件,您可以将该文件放在该用户的主目录中,其中包含每个电话私钥的公钥。这些密钥行可以包含选项,这些选项可用于强制命令仅允许sftp/scp或禁用所有类型的转发。sshd中提供了更多选项-您可能希望在监禁的环境中启动单独的sshd以进行这些上载,而不是使用主sshd

在JSch中,您可以使用对象的一个addIdentity方法启用公钥身份验证。免责声明:JSch文档是我写的

您还应该随应用程序交付服务器的公钥,而不是禁用连接检查以防止中间人攻击。您可以使用setKnownHosts方法向JSch提供已知主机密钥的列表