
Estou executando o CentOS Server 7 em uma VM (ESXi) com permissões de root. Eu tenho um script bash (no meu diretório /etc/profile.d/) que é executado imediatamente após o login. Antes de criar meu arquivo .sh no diretório, não houve problemas ao conectar-se à minha VM via WinSCP. Depois de criar o arquivo e reiniciar o sistema, não consigo mais me conectar. OpenSSH está instalado.. Parece que a execução do bash bloqueia a conexão.. Se eu excluir meu arquivo .sh via console, a conexão será estabelecida novamente. Este é um problema do CentOS? Nunca tive esse problema no Ubuntu Server.
Erro que estou recebendo:
Não é possível inicializar o protocolo SFTP. O host está executando um servidor SFTP?
Alguma ideia? Agradeço antecipadamente!
Responder1
Você não está nos mostrando seu roteiro, então isso é obviamente um tanto especulativo; mas provavelmente seu script não deveria estar presente profile.d
porque requer algum tipo de interação do usuário.
O perfil deve ser reservado exclusivamente para coisas que precisam ser executadas mesmo em sessões não interativas.
O local apropriado para a funcionalidade interativa provavelmente não está nos seus scripts de login, mas algo como isto, por exemplo, $HOME/.bash_profile
pode pelo menos evitar a produção de danos em sessões não interativas.
case $- in *i*) invoke your script here;; esac
Se você .bash_profile
já possui uma, ela já pode conter uma case $-
declaração que você pode alterar em vez de adicionar uma segunda.