通过执行以下操作打开 GNOME 终端后,我设法通过 SSH 连接到远程主机:
gnome-terminal -- bash -c "ssh -i ~/.ssh/virtual_machines remote@remotehost; exec bash;"
但是,一旦我通过 SSH 连接到远程主机,我想通过执行sudo su test
. 我已经在 visudo 中添加了命令:
%wheel ALL=(ALL) NOPASSWD:/bin/su test
一旦我切换到测试,测试用户将启动一个程序并留在该程序上。
修改 .bashrc 文件不是一个选项,因为我也作为该用户使用 SSH,并且不希望程序自动启动。
假设您想启动一个
gnome-terminal
窗口/选项卡,其中启动了一个以test
on运行的登录 shell 会话remotehost
,那将是:su
结合使用对sudo
我来说听起来有点傻。sudo
能做能做的su
事,让您更灵活地定义谁允许做什么。将允许组中的任何用户以没有密码提示
wheel
的用户身份运行任何命令,包括以.test
sudo -i -u test
test
后面的
exec bash
ssh命令什么都不做。分号分隔初始 shell 中的命令,而不是 ssh 会话中的命令。要在 ssh 会话中启动命令,只需附加要执行的命令。在此之后,切换到用户测试怎么样
在 ssh 到远程主机之前
为此,您可能需要
.ssh/authorized_keys
在包含用户测试公钥的远程主机上创建一个文件。那么您将不需要密码即可登录。或者在对远程主机执行 ssh 时?
为此,您可能需要
.ssh/authorized_keys
在远程主机上创建一个包含您的公钥的文件。那么您将不需要密码即可登录。或者你可以做