How IT

언제든지 물어보세요.

컨텐츠로 건너뛰기
  • 홈
  • Unix
  • Apple
  • Java
  • Android
  • C#
  • C++

SSH 로그인시 디렉토리를 자동으로 변경하려면 어떻게합니까? 자동으로 특정

내가 얻으려고 ssh. 내가 로그인 할 때 자동으로 특정 디렉토리로 변경 난에 다음과 같은 지침을 사용하여 작업하는 동작을 얻기 위해 노력했다 ~/.ssh/config:

Host example.net
LocalCommand "cd web"

하지만 로그인 할 때마다 다음이 표시됩니다.

/bin/bash: cd web: No such file or directory

비록 web내 홈 디렉토리 에는 확실히 폴더 가 있지만 . 절대 경로를 사용하더라도 동일한 메시지가 나타납니다. 분명히 cd web로그인 한 후 입력 하면 올바른 폴더로 이동합니다.

내가 여기서 무엇을 놓치고 있습니까?

편집하다:

따옴표 / 절대 경로의 다른 조합은 다른 오류 메시지를 제공합니다.

LocalCommand "cd web"
/bin/bash: cd web: No such file or directory

LocalCommand cd web
/bin/bash: line 0: cd: web: No such file or directory

LocalCommand cd /home/gareth/web
/bin/bash: line 0: cd: /home/gareth/web: Input/output error

이것은 따옴표가 없어야하며 다른 오류가 발생한다고 생각합니다.



답변

cd는 내장 쉘입니다. LocalCommand는 다음과 같이 실행됩니다.

/bin/sh -c <localcommand>

당신이 찾고있는 것은 실제로 SSH를 통해 달성 할 수 없습니다. bashrc / bash_profile과 같은 방식으로 쉘을 수정해야합니다.

<거의 10 년 후 편집 …>

LocalCommand어쨌든 당신이 원하는 것이 아닙니다. 그것은 당신의 컴퓨터 에서 실행됩니다 . 당신은 원합니다 RemoteCommand. 이와 같은 것이 나를 위해 일했습니다 :

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


답변

이것은 작동합니다 :

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

디렉토리가없는 경우 작성하려면 다음을 수행하십시오.

ssh server -t "mkdir -p newfolder; cd ~/newfolder; pwd; bash --login"

bash경로 끝에 추가하지 않으면 cdcomand가 실행 된 후 종료 됩니다. 추가하지 않는 경우 그리고 --login다음이 ~/.profile공급되지 않습니다.


답변

  1. 박스에 로그인
  2. 편집하다 ~/.bash_profile
  3. 파일의 끝에 추가 cd /path/to/your/destination
  4. 저장 후 종료
  5. 상자에서 로그 아웃
  6. 다시 로그인하면 착륙해야합니다 /path/to/your/destination

답변

기본 .bashrc 파일을 ssh하고 재정의해야 할 경우 더 강력한 솔루션입니다. 원격 서버 환경에 여러 개의 docroot가 있고 여러 사용자가 사용하는 경우에 유용합니다.

alias ssh_myserver='ssh server_name -t "echo cd /path/to/desired/dir>/tmp/.bashrc_tmp; bash --rcfile /tmp/.bashrc_tmp"'

좀 더 상세한:

  1. 첫 번째 명령은 컨텐츠를 사용하여 원격 서버의 디렉토리에 .bashrc_tmp파일을 작성 합니다./tmpcd /path/to/dir
  2. 다음 명령은 bash1 단계에서 지정한 구성 파일을 사용하여 실행 됩니다. 그러면 원하는 dir로 전환하고 default를 억제 할 수 있습니다 .bashrc.
  3. 이 전체 명령은로 래핑 alias되므로 ssh 클라이언트 명령 프롬프트에서 다음과 같이 호출 할 수 있습니다ssh_myserver

답변

ssh 설정에서이 지시문을 활성화 했습니까?

PermitLocalCommand yes

기본값은입니다.이 no경우 LocalCommand지시문이 무시됩니다.

또는 .bashrc파일에 명령을 추가해 보셨습니까 ?


답변

그래서 많은 웹 사이트 (스택 오버 플로우,이 웹 사이트)를 검색했지만 원하는 것을 찾지 못했습니다. 나는 내 자신의 쉘 스크립트를 만들었습니다. 여기에 붙여 넣습니다. 또한 $ PATH에 디렉토리를 복사 할 수 있습니다.

#!/bin/bash
ssh -t <username@hostname> "cd ~/$1; exec \$SHELL --login"

그래서이 후. 나는한다:

connect <foldername>

참고 : 경로 변수를 변경 한 후 로그 아웃했다가 다시 로그인해야 할 수 있습니다


답변

당신의 ~/.ssh/config:

LocalCommand echo '/home/%r/some/subdir' > /home/%r/.ssh/ssh_cd

당신의 끝에 ~/.bashrc:

if [[ -f $HOME/.ssh/ssh_cd ]]
then
    cd $(<$HOME/.ssh/ssh_cd)
    # uncomment the line below and the file will be removed so the cd won't work
    # unless the file is regenerated since you may not want this to operate for
    # non-ssh logins or for ssh logins that you want to function differently
    # rm $HOME/.ssh/ssh_cd
fi

내 보낸 변수를 포함하여 변수 전달을 사용 하여이 작업을 시도했지만 이러한 명령은 다른 쉘에서 실행됩니다.

당신이하려는 것을 테스트 할 때 인용되지 않은 절대 경로를 사용할 때 오류가 발생하지 않았습니다. ; pwd명령 끝에 추가 했는데 올바른 디렉토리가 표시되지만 결국 디렉토리는 ~입니다. cd쉘 시작 파일 에는 명령 이 없습니다 . 나는 다른 퍼팅 시도 cd somedir; pwd에 ~/.ssh/rc(아직도 그 자리에 다른과). configMOTD가 발급되기 전에 명령을 실행하고 rc명령 이후에 발행하지만, 쉘 전에 시작 파일이 공급됩니다. 다시 말하지만, 그것은 다른 껍질에서 일어나고 있습니다.

파일 별 전달 기술을 시도해보고 그것이 효과가 있는지 알려주십시오.


이 글은 Server 카테고리에 분류되었고 login, ssh 태그가 있으며 소장 마님에 의해 2022-04-02에 작성되었습니다.

글 네비게이션

← SQL Server : 작은 덩어리로 거대한 테이블의 필드 업데이트 : 진행 상황 / 상태를 얻는 방법? 매우 큰 (1 억 행) 테이블을 가지고 통합 문서를 열면 Excel 연결된 데이터 수식이 #REF로 바 turns 참조는 #REF로 바뀝니다. 즉. =’C:\..\[B.xls]!Sheet1′!A1 로 →

태그

  • android
  • apt
  • bash
  • boot
  • c#
  • c++
  • code-golf
  • command-line
  • debian
  • firefox
  • git
  • google-chrome
  • hard-drive
  • html
  • java
  • keyboard
  • linux
  • mac
  • macos
  • math
  • memory
  • microsoft-excel
  • mysql
  • networking
  • performance
  • permissions
  • python
  • r
  • regression
  • security
  • shell
  • sql-server
  • ssh
  • string
  • terminal
  • ubuntu
  • unity
  • usb
  • vim
  • virtualbox
  • windows
  • windows-7
  • windows-8
  • windows-10
  • windows-xp

최신 글

  • Windows에서 파티션 크기를 조정 한 후 APFS 파티션이 손실 됨 00 80
  • App Store에서 El Capitan을 강제로 다시 다운로드 하시겠습니까? 업데이트 된 플래시 드라이브 설치 프로그램을 빌드하기
  • 기존 시스템에 부팅 드라이브로 SSD 추가 백업에 큰 관심이 없습니다. 내가 걱정하는 것은이
  • geoJSON featureCollection에 properties 요소를 갖는 것이 유효합니까?
  • 추세를 식별하기 위해 신호 처리 원리를 신중하게 사용 매우 시끄러운 장기 데이터에서 추세를

카테고리

  • Android
  • Apple
  • C#
  • C++
  • cooking
  • cs
  • cstheory
  • diy
  • drupal
  • electronics
  • emacs
  • Gis
  • Git
  • Html
  • Java
  • Javascript
  • magento
  • photo
  • Python
  • raspberrypi
  • scicomp
  • Server
  • Software
  • Sql
  • stats
  • Superuser
  • ubuntu
  • Unix
  • vi
  • webapps
  • webmasters
  • wordpress
  • 게임개발
  • 코딩
Proudly powered by WordPress
Go to mobile version
Close