원격 서버 SCP 문제

원격 서버 SCP 문제

Debian Linux가 설치된 원격 컴퓨터에 대한 관리자 액세스 권한이 있습니다. 처음에는 모든 것이 잘 작동했습니다. 모든 사용자가 특정 코드를 실행할 수 있도록 일부 변수를 전역적으로 정의하려고 했습니다. 이제 해당 서버에 scp 파일을 보낼 수 없습니다. scp 명령을 실행하면 다음과 같이 표시됩니다.

bash: scp: command not found
lost connection

scp내 로케일 PC와 서버 모두에서 사용할 수 있습니다. SSH를 사용하여 원격 컴퓨터에 연결할 수 있습니다. 하지만 연결하면 다음과 같이 표시됩니다.

-bash: id: command not found
-bash: [: : integer expression expected

하지만 이 명령을 실행하면:

which id

출력은 다음과 같습니다

/usr/bin/id

그리고 시스템에 기본 코드로 가는 경로가 정의되어 있다고 생각합니다. 또한 원격 컴퓨터는 scp에 대한 패스를 알고 있으며 출력은 다음과 which scp같습니다.

/usr/bin/scp

내가 한 일에 대해 기억나는 것은 파일을 만든 /etc/profile.d다음 그 파일을 삭제한 것뿐입니다. 또한 ~/.bashrc, ~/.profile및 에 잘못된 PATH 사양이 없는지 확인하고 확인했습니다 /etc/profile.

원격 컴퓨터에 무슨 문제가 있는지 아는 사람이 있나요?

답변1

아래 명령을 사용하여 사용자가 scp명령에 액세스할 수 있는지 여부를 확인할 수 있습니다.

echo $PATH

예제 출력:

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

그러면 사용자가 액세스할 수 있는 명령 경로가 표시됩니다.

scp명령을 확인하는 경우 scp명령이 에 위치한다고 가정합니다 /usr/bin/. 출력에 echo $PATH포함되어 있지 않으면 /usr/bin/"명령을 찾을 수 없습니다"라는 메시지가 표시됩니다.

문제를 해결하려면 다음을 실행하세요.

export PATH=$PATH:/usr/bin/

영구적으로 변경하려면 위 내용을.bash_profile

답변2

파일 에 오류가 있습니다 .bashrc. 다음 명령을 사용하여 기본 버전을 복원한 후 다시 연결하세요.

$ cp /etc/skel/.bashrc ~/

답변3

문제 해결됨. 에 잘못된 PATH 정의가 추가되었습니다 /etc/environment. 그 실수를 수정하면 문제가 해결되었습니다.

관련 정보