CentOS 5.7 웹 서버가 있는데 SSH를 사용하여 연결할 때 로그인할 기본 위치를 변경하고 싶습니다.
현재 에 착륙했는데 /home/username
에 착륙하고 싶습니다 /home
.
나는 루트로 들어가서 추가했습니다 PermitUserEnvironment yes
. /etc/.ssh/sshd_config
이것은 사용자 자신의 ssh
폴더에서 파일을 검색한다는 것을 이해합니다 environment
. 확실하지 않은 것은 이 환경 파일에 무엇을 추가하고 있는지입니다. export path=$PATH:$HOME
여기나 .bashrc 또는 .bash_profile 파일에서 작동하지 않는 것 같습니다(제가 아는 한 작동하지 않습니다). 차이가 있음) 어쨌든 SSH 연결은 비대화형 쉘입니까? ).
미리 감사드립니다.
답변1
인증을 위해 PAM을 사용하는 경우 이는 아마도 가장 가능성이 높습니다. 뿌리를 보세요 /etc/passwd
.
거기에서 사용자 이름과 경로를 볼 수 있습니다! 거기서 갈아입고 집에 갈 준비가 되었습니다!
편집 - 죄송합니다. 홈 폴더를 변경하고 싶지 않을 수도 있다는 생각이 들었습니다. 이 경우에는 다음을 추가하세요.
cd /home
파일의 맨 아래로 이동하세요 .bashrc
!
답변2
~/.ssh/environment
쉘이나 명령이 생성되기 ssh
전에 읽혀 지므로 내보내기나 $PATH(예:)는 의미가 없습니다. 여기서는 환경 변수만 설정할 수 있습니다(일반 쉘 명령은 실행할 수 없습니다).
비대화형 SSH 셸 환경을 확보한 후 이를 수정하면 비대화형 명령에 필요한 것을 얻어야 합니다. 예를 들어:
$ 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
읽은 후 쉘이나 명령 전에 실행)은 쉘이 홈 경로(기본적으로)에서 시작되므로 쓸모가 없습니다.~/.ssh/environment
ssh