我希望每次登录远程主机时都能够在当前交互式 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 地址和服务器端口号。
所以您可以使用此信息来了解你的连接来自哪里。