使用 ssh 配置文件运行远程命令

使用 ssh 配置文件运行远程命令

我希望能够设置一个命令,在 ssh 登录到服务器时运行,而无需键入它。基本上,我正在寻找与以下内容等效的 ssh 配置文件:

ssh host command

因此我需要输入的是:

ssh host

并且命令开始运行。

答案1

你可以在你的中解决这个问题.ssh/config file,对于你想要执行命令的主机,添加

  RequestTTY yes
  RemoteCommand <some command>

您的命令在哪里<some command>。这也适用于 screen 或 tmux。

答案2

您还可以在授权密钥文件中插入命令。(~/.ssh/authorized_keys)。这允许您为文件中的每个密钥执行自定义命令。我使用它通过防火墙转发 shell 连接。结果是我可以 ssh 到一台主机,它会自动将会话连接到网络内的主机。条目authorized_keys如下所示:

command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...

更具体地说,重定向适用于我的 gitolite 实例。这允许简单的外部访问,而无需直接将 gitolite 主机暴露给任何外部访问。查看手册页了解更多信息。(http://linux.die.net/man/8/sshd

答案3

如果你正在运行 OpenSSH,它看起来~/.ssh/rc像是登录时执行

答案4

我使用以下内容.ssh/config

  RemoteCommand cd ~/mydir;bash
  RequestTTY force

相关内容