SSH-仅使用一个命令即可登录?

SSH-仅使用一个命令即可登录?

我买了一台 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 替换为在远程机器上启动桌面会话的任何命令。

相关内容