환경 변수 "SSH_PWD"가 있으며 이를 사용하여 로그아웃 전 마지막 "비밀번호"를 복구하려면 어떻게 해야 합니까?

환경 변수 "SSH_PWD"가 있으며 이를 사용하여 로그아웃 전 마지막 "비밀번호"를 복구하려면 어떻게 해야 합니까?

연구실에는 여러 대의 "Raspberry Pi" 기계가 실행되고 있습니다.데비안 스타일운영 체제. 이는 특정 목적을 수행합니다. 즉, SSH 연결을 설정한 후 cd"내 항목"이 있는 폴더에 액세스합니다. 예를 들어, 현재 연결되어 있는 기기에서는 대부분의 시간을 폴더에서 보냅니다 ~/pico/ina260_i2c/build.

이 시스템에 SSH로 접속하면 로그아웃하기 전 있던 폴더, 즉 일반적으로 ~/pico/ina260_i2c/build. 당연히 아니지언제나이 상황이 그래서 데려가고 싶어로그아웃하기 전 있던 폴더.

내 질문은,“이를 달성하려면 시스템을 어떻게 구성해야 합니까?”

내가 시도한 것은 다음과 같습니다.

  1. 내가 생각한 것을 찾았어요완벽한내 질문에 대답여기...완벽한하지만 작동하지 않습니다! 나는 적어도 하나의 문제가 있다는 것을 알았고( 대신 ssh에 문제가 있었습니다 ) 그것을 고쳤습니다. 그 외에도 그/usr/bin/ssh/bin/ssh나를 위한여기서의 실패는 SSH_PWD환경 변수( 에서 파생됨 PWD)가 login 이후에 지속되지 않는다는 것입니다 SSH.

    이것~인 것 같다희망적이지만 작동하지 않습니다.

    $ sudo echo "SendEnv SSH_PWD" >> /etc/ssh_config && sudo echo "AcceptEnv SSH_PWD" >> /etc/sshd_config
    # edit ~/.profile to add the following: 
    alias ssh='env SSH_PWD="$PWD" /usr/bin/ssh'
    if [ -n "$SSH_PWD" ]; then   # i.e. -n => non-zero string; 
    cd "$SSH_PWD"
    unset SSH_PWD
    fi
    

    나는 또한 PermitUserEnvironment yes설정을 시도했습니다 /etc/ssh/sshd_config.

  2. 답변에 대한 다른 검색 결과 몇 가지가 나타났습니다.~인 것 같다미래는 있지만 나는PAM에 대해 전혀 모른다그래서 이 솔루션을 시도하는 것조차 스트레스를 받습니다.

답변1

이러한 시스템에서 로그인 셸이 bash라고 가정하면 시스템 구성을 편집하지 않고도 원격 측에서 이 작업을 완전히 수행할 수 있습니다. 편집 ~/.bash_logout(존재하지 않는 경우 생성)하고 다음을 추가합니다.

# Save current directory to a file on logout
printf '%s\0' "$PWD" > ~/.my_previous_session_pwd

~/.bash_profile귀하의 (또는 ~/.profile존재하는 것 중 하나) 에 다음을 추가하십시오.

# If the previous session's working directory was saved to file, switch to it
if
  [ -r ~/.my_previous_session_pwd ] &&
    IFS= read -rd '' old_dir < ~/.my_previous_session_pwd &&
    [ -d "$old_dir" ]
then
  cd -- "$old_dir"
fi

관련 정보