使用交互式 SSH 在远程主机上运行命令(有条件)

使用交互式 SSH 在远程主机上运行命令(有条件)

我希望每次登录远程主机时都能够在当前交互式 SSH 会话内自动运行命令。

就像是

ssh user@remotehost [run do.sh]

在哪里do.sh执行一些内务管理任务,然后重新附加到screen会话(目前我do.sh在登录主机后手动运行)。

我不想将其添加到,.bashrc因为我从其他计算机登录到该主机,并且当我从那里登录时我不想do.sh运行,所以我需要它是可选的。

答案1

你可以尝试这样的事情:

ssh server -t "do.sh; bash --login"

正如这里所建议的:https://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login

或者您可以尝试使用 sshd_conf (或 ~/.ssh/config)中的“LocalCommand”选项,如官方手册页中所述:http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1

答案2

难题之一:假设使用 OpenSSH,客户ssh端将设置以下环境变量:

SSH_CONNECTION 标识连接的客户端和服务器端。该变量包含四个空格分隔的值:客户端IP地址、客户端端口号、服务器 IP 地址和服务器端口号。

所以您可以使用此信息来了解你的连接来自哪里

相关内容