![SSH-仅使用一个命令即可登录?](https://linux22.com/image/1143753/SSH-%E4%BB%85%E4%BD%BF%E7%94%A8%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E5%8D%B3%E5%8F%AF%E7%99%BB%E5%BD%95%EF%BC%9F.png)
我买了一台 Raspberry Pi 3,它运行良好,运行 Debian 和 XFCE 桌面。我知道可以使用 X11 转发。
现在,我的问题是,是否可以使用一个命令启动程序?我想为我的主操作系统 (Ubuntu GNOME) 创建一个桌面条目,这样我只需单击它即可运行。
我必须为此创建一个.sh 文件。
有没有办法只用一个命令就可以登录并启动程序?假设我想启动 GIMP。
通常我会这样做:
ssh -XC -C -c arcfour,blowfish-cbc username@IP
然后它将打开 RPi 的 SSH 客户端并要求输入密码,然后我输入密码,最后我必须输入“Gimp”以便它在我的主桌面上启动。
有没有办法只用一个命令就可以完成所有这些操作?我想进行桌面输入,但我不想每次都打开终端并要求我输入密码才能登录 Pi。
答案1
通常我会这样做:
ssh -XC -C -c arcfour,blowfish-cbc username@IP
不要这样做。使用它-Y
来确保它以后能正常工作。如今,选择“坏密码”没有帮助,-C
压缩也没有帮助。
ssh -Y username@IP
就够了。
如果你不想全部写下来,那么ssh_config
你可以像这样存储条目:
Host pi
Hostname <IP>
User username
ForwardX11 yes
然后您只需输入 即可连接ssh pi
。
为了摆脱密码提示,设置公钥认证是一个不错的选择(简而言之):
ssh-keygen -t rsa
ssh-copy-id pi
pi
最后,您可以直接从启动程序ssh
,例如
ssh pi gimp
如果您愿意,可以简单地将其用作桌面的快捷方式。但我认为输入它比在桌面上搜索一些图标更快 :)
答案2
如果您想要 Pi 的完整桌面,您可以安装 xnest 并使用它。Xnest 是一个 X 客户端,也是一个 X 服务器,因此它为您提供了第二个 X 服务器,作为当前桌面中的子窗口运行。
我已经设置了一个无密码密钥来通过 ssh 连接到虚拟机,并且我已经创建了一个 .ssh/config 文件,其中包含 Jakuje 描述的快捷方式,所以我要做的是
user@host:~/ $ Xnest :1 &
user@host:~/ $ DISPLAY=:1 ssh myvm mate-session
这将启动位于 :1(您的常规显示器为 :0)的我的机器上的 Xnest“服务器”,并将该进程发送到后台。然后我设置该 shell 的 DISPLAY 变量以指向 Xnest 显示器,并使用来自我的 .ssh/config 的信息通过 ssh 进入我的虚拟机并启动完整的 MATE 桌面会话。将 mate-session 替换为在远程机器上启动桌面会话的任何命令。