![如何在 ssh 登录时运行一个脚本,并在第一个脚本终止后运行另一个脚本?](https://linux22.com/image/1445725/%E5%A6%82%E4%BD%95%E5%9C%A8%20ssh%20%E7%99%BB%E5%BD%95%E6%97%B6%E8%BF%90%E8%A1%8C%E4%B8%80%E4%B8%AA%E8%84%9A%E6%9C%AC%EF%BC%8C%E5%B9%B6%E5%9C%A8%E7%AC%AC%E4%B8%80%E4%B8%AA%E8%84%9A%E6%9C%AC%E7%BB%88%E6%AD%A2%E5%90%8E%E8%BF%90%E8%A1%8C%E5%8F%A6%E4%B8%80%E4%B8%AA%E8%84%9A%E6%9C%AC%EF%BC%9F.png)
我试图在使用“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
答案2
如果您希望远程将作为代理,则无需创建特殊用户。您可以通过创建密钥身份验证并限制此密钥无条件运行指定的命令来实现这一点
man authorized_keys
...
command="command"
Specifies that the command is executed whenever this key is used for authentication.
在此命令中,您可以链接 ssh 连接。
但为了这个目的最好使用端口转发。