我想问一下关于通过SSH运行X-applications如下。
我有运行 SL6.3 和 Gnome 2x 的 Linux 桌面。在运行 CM9 的 Android 平板电脑上,我有适用于 Android 的 Connectbot 和 X-Server。 我可以通过 SSH 使用 Connectbot 成功登录 Linux。
我在 Linuxbox 的/etc/ssh/sshd_config 中设置了 X-forwarding 的选项。(X11Forwarding yes)。
现在当我使用 -X 选项时, ssh -X username@hostname:port , Connectbot 重复询问密码,即使我提供了正确的密码,并说 - '身份验证方法'密码'失败。
如何在平板电脑上通过 SSH 成功运行 X 应用程序? 环境是家庭无线网络。
最佳答案
我知道这个帖子很旧...但是,我想确保我澄清了 paulsm4 的回答中的一些误导...
X 是向后的... 你没有连接到 X 服务器。您在本地机器上运行服务器(他所说的客户端实际上是服务器)。当您连接到安装了 X 库的远程 Nix 机器,并将 -X 开关添加到 SSH 命令时,ssh 会将 X 请求转发给您。在另一端运行的程序(Gnome、Chrome、PyCharm 等)将成为您的 X 客户端,并且它将被上游返回到包含 X 服务器的桌面。这是一个序列图:
User Remote
-----------------------------------------------------------------------
User Inits SSH -X Session -----------------> SSH Server Auth User
|
V
SSH Session is established <---------------- SSH User is Authenticated
|
V
User Initiates App on server --------------> App Starts Running
|
V
App Writes output to X Server
|
V
Xorg receives write commands <-------------- SSH Tunnels that back to User
|
V
Writing occurs on desktop
-----------------------------------------------------------------------
大多数时候,X 服务器和 X 客户端是相同的(就像在本地桌面上一样)。因此,一旦客户端写入 X,本地 X 服务器就会写入屏幕。显示过程实际上是在用户的计算机上完成的,无论它在哪里,您的计算机都会成为服务器。是不是很疯狂?
关于android - Android 中基于 SSH 的 X-Applications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12811124/
我尝试使用不同的ssh_options在同一阶段运行capistranov.3任务。我的production.rb说:set:stage,:productionset:user,'deploy'set:ssh_options,{user:'deploy'}通过此配置,capistrano与用户deploy连接,这对于其余的任务是正确的。但是我需要将它连接到服务器中配置良好的an_other_user以完成一项特定任务。然后我的食谱说:...taskswithoriginaluser...task:my_task_with_an_other_userdoset:user,'an_othe
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
在previousquestion中我想出了如何在多个服务器上启动经过密码验证的sshsession来运行单个命令。现在我需要能够执行“sudo”命令。问题是,net-ssh-multi没有分配sudo需要运行的伪终端(pty),导致以下错误:[127.0.0.1:stderr]sudo:sorry,youmusthaveattytorunsudo根据documentation,可以通过调用channel对象的方法来分配伪终端,但是,以下代码不起作用:它会生成上面的“notty”错误:require'net/ssh'require'net/ssh/multi'Net::SSH::Mul
Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好
我一直在尝试使用Thor编写一个小型库,以帮助我快速创建新项目和站点。我写了这个小方法:defssh(cmd)Net::SSH.start(server_ip,user,:port=>port)do|session|session.execcmdendend只是协助我在需要时在远程服务器上运行快速命令。问题是当我需要在远程端的sudo下运行命令时,脚本似乎卡在我身上。例如当执行这个...ssh("sudocp#{file_from_path}#{file_to_path}")脚本会提示我输入密码[sudo]passwordforuser:但是在输入之后整个事情就挂起。有人会碰巧知道它为
我正在尝试弄清楚如何在Ruby中的sudosu-#{su_user}之后发送多个net-ssh命令链。我当前的代码在下面,并且挂起sudosu命令,即使在send_data"#{password}\n"之后也是如此。同时,在系统上,手动执行sudosu-admin2不需要输入密码。如有任何帮助,我们将不胜感激!require'rubygems'require'net/ssh'host='hostA'user='admin'password='hostA_pwd'su_user='Admin2'Net::SSH.start(host,user,:password=>password)do
有什么方法可以使用net-ssh在ruby中获取登录shell?这可能吗?我所说的登录shell是指源/etc/profile.. 最佳答案 Net-SSH级别太低,无法简单地预先提供(无论如何,现在是这样)。您可以查看基于Net-SSH构建的Net-SSH-Shell以添加登录shell功能:https://github.com/mitchellh/net-ssh-shell该实现可靠且有效,但我发现它不太有用,因为您无法专门提取诸如stderr或退出状态之类的内容,因为这些命令在子shell中运行,因此您只能获取stdout
我已经阅读了net-ssh文档,但我仍然感到困惑。我可以手动进行身份验证(使用ssh-i...),也可以将key放在文件中并使用:keys参数。但是,我不想使用:keys参数,我想使用:key_data参数。任何人都可以举一个工作的例子吗?出于某种原因,直接将字符串输入:key_data是行不通的,它给出了错误:“既不是PUBkey也不是PRIVkey::嵌套的asn1错误”。当然,我用谷歌搜索了一下,它基本上告诉我要确保key是PEM格式。而且,当然是。有任何想法吗?如果需要,我可以提供更详细的信息... 最佳答案 我看到这个问题
有问题的代码Net::SSH.start('servername','user')这将返回“非绝对主页”。“用户”实际上有一个主目录。一种建议的方法是使用IdentityFile的完整路径修改~/.ssh/config。这并没有解决问题。其中最疯狂的部分是,如果通过irb或控制台调用,代码可以正常工作。当我们尝试从类方法(使用相同的代码)中调用它时,它会返回“非绝对主页”错误。“用户”也可以通过命令行ssh进入服务器而不会出现问题。服务器正在运行Ubuntu。更新感谢@Phrogz-解决方法是将ENV['HOME']设置为'/home/deploy'。但是,我还没有弄清楚为什么$HOM
运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid