![CentOS 7: bash 실행 시 WinSCP를 통해 연결할 수 없습니다.](https://rvso.com/image/1558689/CentOS%207%3A%20bash%20%EC%8B%A4%ED%96%89%20%EC%8B%9C%20WinSCP%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
루트 권한으로 VM(ESXi)에서 CentOS Server 7을 실행하고 있습니다. 로그인 후 즉시 실행되는 bash 스크립트(/etc/profile.d/ 디렉토리에 있음)가 있습니다. 디렉터리에 .sh 파일을 만들기 전에는 WinSCP를 통해 VM에 연결하는 데 문제가 없었습니다. 파일을 생성하고 시스템을 재부팅한 후 더 이상 연결할 수 없습니다. OpenSSH가 설치되어 있습니다. bash 실행이 연결을 차단하는 것 같습니다. 나중에 콘솔을 통해 .sh 파일을 삭제하면 연결이 다시 설정됩니다. CentOS 문제인가요? Ubuntu Server에서는 이 문제가 발생하지 않았습니다.
다음과 같은 오류가 발생합니다.
SFTP 프로토콜을 초기화할 수 없습니다. 호스트가 SFTP 서버를 실행하고 있나요?
어떤 아이디어가 있나요? 미리 감사드립니다!
답변1
귀하는 귀하의 스크립트를 우리에게 보여주지 않고 있으므로 이는 확실히 다소 추측에 불과합니다. 그러나 아마도 profile.d
일종의 사용자 상호 작용이 필요하기 때문에 스크립트가 포함되어서는 안 됩니다.
프로필은 비대화형 세션에서도 실행해야 하는 작업을 위해 독점적으로 예약되어야 합니다.
대화형 기능을 위한 적절한 위치는 아마도 로그인 스크립트에 전혀 없을 것입니다. 그러나 이와 같은 위치는 $HOME/.bash_profile
최소한 비대화형 세션에 대한 손상을 방지할 수 있습니다.
case $- in *i*) invoke your script here;; esac
이미 있는 경우 두 번째 항목을 추가하는 대신 수정할 수 있는 항목이 .bash_profile
이미 포함되어 있을 수 있습니다 .case $-