如何在 ssh 登录时运行一个脚本,并在第一个脚本终止后运行另一个脚本?

如何在 ssh 登录时运行一个脚本,并在第一个脚本终止后运行另一个脚本?

我试图在使用“guestUser”通过 ssh 登录到我的主机后运行脚本/shell,此用户的任务是通过 ssh 连接到另一个远程主机,我已在我的主机上创建了此用户:

guestUser:x:1234:1234::/home/guest:/bin/bash

然后,在来宾目录中我有一个.bashrc文件,我按照这个答案添加了这个文件(Linux:如何在 SSH 登录时自动运行命令?):

if[[ -n $SSH_CONNECTION ]] ; then
  ssh 192.198.1.99
fi

我这样做是因为我需要在此步骤中“guestUser”引入 sshUserInRemoteTwo 和 sshUserPasswordInRemoteTwo。它不起作用。脚本尝试将“guestUser”记录为remoteHostTwo“guestUser”,这不是目标,我需要脚本询问用户/密码。

如果我让它工作:脚本要求输入用户/密码并在第二台主机上正确登录,那么,一旦与第二台主机的 SHH 连接结束,guestUser 就会离线我的主机;因为此刻,SSH 连接已经结束并且用户继续在我的主机上。

答案1

尝试:

ssh <username>@192.198.1.99

或者:

ssh -l <username> 192.198.1.99

只需用以下其中一种形式替换上面 .bashrc 代码片段中的行即可。

登录后,系统会要求您输入此连接的密码。您可能希望使用无密码登录

人SSH

答案2

如果您希望远程将作为代理,则无需创建特殊用户。您可以通过创建密钥身份验证并限制此密钥无条件运行指定的命令来实现这一点

man authorized_keys
...
command="command"
         Specifies that the command is executed whenever this key is used for authentication.

在此命令中,您可以链接 ssh 连接。

但为了这个目的最好使用端口转发。

相关内容