22

有没有办法专门 ssh 到远程位置的特定目录,特别是使用本地 ssh 配置文件(不是终端)?Dir例如,下面段落中的选项类似,

    Host remote_dir
       Hostname remote_server
       User username
       Dir path/to/remote_dir/

因此,如果我使用上述段落中的 Host 值进行 ssh,

ssh remote_dir

然后,我想登录并在path/to/remote_dir/远程服务器上为我准备好终端,

username@remote_server: path/to/remote_dir/ > pwd
/home/username/path/to/remote_dir/
4

2 回答 2

24

在ServerFault 上的这篇文章中,他们说您不能通过 ssh 配置文件来完成所有操作。但是您可以使用 ssh 配置和您的 .bash_profile 或终端书呆子所说的任何内容来完成。在 ssh 配置文件中添加

Host dev
  Hostname server.com
  User joe

然后在你的 .bash_profile 添加一个别名

alias domain1="ssh dev -t 'cd domains/domain1; bash'"

这里dev指的是您在配置文件中设置的内容。

在终端中,只需键入domain1,您将被要求输入密码并直接进入目录。为您的所有域创建一个新别名,这将使每个域的登录变得超级容易。

于 2013-01-17T21:57:17.267 回答
14

看看 https://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login

这是公认的答案

LocalCommand反正不是你想要的。那是在你的机器上运行的。你想要RemoteCommand。像这样的东西对我有用:

  Host example.net
  RemoteCommand cd / && exec bash --login
  RequestTTY yes

(旧答案)对于类似的用例,ssh -t也是一种选择:

ssh server -t "cd /my/remote/directory; bash --login"

它不一样,因为它不使用 ssh 配置。但是您可以为命令定义一个别名并最终得到类似的效果。

于 2013-01-17T21:22:36.483 回答