我有一个 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/environment
ssh