Pet*_*Law 41 ssh remote-control
我希望能够设置一个命令以在 ssh 登录到服务器时运行,而无需键入它。基本上,我正在寻找等效于以下内容的 ssh 配置文件:
ssh host command
Run Code Online (Sandbox Code Playgroud)
所以我需要输入的是:
ssh host
Run Code Online (Sandbox Code Playgroud)
并运行命令。
小智 27
您可以在您的 中解决这个问题.ssh/config file,对于要执行命令的主机,添加
RequestTTY yes
RemoteCommand <some command>
Run Code Online (Sandbox Code Playgroud)
<some command>你的命令在哪里。这也适用于 screen 或 tmux。
小智 16
也可以在您的授权密钥文件中插入命令。( ~/.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 ...
Run Code Online (Sandbox Code Playgroud)
更具体地说,重定向是针对我的 gitolite 实例的。这允许简单的外部访问,而无需直接将 gitolite 主机暴露给任何外部访问。查看手册页以获取更多信息。( http://linux.die.net/man/8/sshd )
您可以设置 bash 别名。
在您的 .bashrc 文件中,输入:
alias ssl='ssh some_host run_command'
Run Code Online (Sandbox Code Playgroud)
然后您甚至不必键入主机名。
或者,如果您想对多个主机执行此操作(并且多个别名不起作用),则使用一个小脚本:
kevin@box:~$ cat ssl.sh
#!/bin/sh
ssh $1 some_command
kevin@box:~$
Run Code Online (Sandbox Code Playgroud)