更改 SSH 登录 CentOS 服务器时的默认路径?

更改 SSH 登录 CentOS 服务器时的默认路径?

我有一个 CentOS 5.7 Web 服务器,我想更改使用 SSH 连接时登陆的默认位置。

目前我降落在/home/username,并且我想降落在/home

我以 root 身份进入并添加PermitUserEnvironment yes/etc/.ssh/sshd_config- 据我了解,这将扫描用户自己的ssh文件夹中的文件environment。我不确定的是我要添加到这个环境文件中的内容,因为export path=$PATH:$HOME似乎不起作用,无论是在这里还是在我的 .bashrc 或 .bash_profile 文件中(据我所知,这不会产生任何影响)无论如何,SSH 连接是非交互式 shell?)。

提前致谢。

答案1

如果您使用 PAM 进行身份验证,这可能是最有可能的。视根头入/etc/passwd

在那里你应该看到你的用户名和路径!在那里改变它,你就可以回家了!

编辑 - 抱歉,我刚刚想到您可能不想更改您的主文件夹。在这种情况下,只需添加:

cd /home

到文件底部.bashrc

答案2

要记住的是,它~/.ssh/environment是在生成 shell 或ssh命令之前读取的,因此(例如)导出和 $PATH 都没有意义。您只能在此处设置环境变量(不能运行一般的 shell 命令)。

如果您获取非交互式 ssh shell 的环境,然后对其进行修改,您应该获得非交互式命令所需的内容。例如:

$ ssh mylogin@myserver env

将为您提供服务器上 ssh 的启动内容。如果您将~/.ssh/environment文件写为:

PATH=/usr/local/bin

并重新运行上面的命令,您应该得到“bash:env:命令未找到”。好的!

现在,根据系统的基础sshd(即第一个“ssh .... env”调用)显式构建您的路径,例如(/usr/local/bin在头部添加):

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

另请注意,尝试设置 CWD (在读取~/.ssh/rc之后但在 shell 或命令之前运行)是没有用的,因为 shell 将在您的主路径中启动(默认情况下)。~/.ssh/environmentssh

相关内容